同源策略和跨域面試題 在前后端分離后,應(yīng)該用什么工具測試后端接口,postman貌似是不可以的,因為它測試的時候不存在跨域?
在前后端分離后,應(yīng)該用什么工具測試后端接口,postman貌似是不可以的,因為它測試的時候不存在跨域?大家都是如何解決javascript跨域訪問的?首先,你需要知道什么是JavaScript跨域???/p>
在前后端分離后,應(yīng)該用什么工具測試后端接口,postman貌似是不可以的,因為它測試的時候不存在跨域?
大家都是如何解決javascript跨域訪問的?
首先,你需要知道什么是JavaScript跨域??缬蚴転g覽器的同源策略的限制,需要同一個源進行通信,即協(xié)議、域名和端口號都是相同的。同源策略將限制兩種情況。第一種是不向不同來源的服務(wù)發(fā)送請求,第二種是不從不同的來源(如文檔和cookie)獲取BOM和DOM。我們通常通過解決第一個場景來解決跨域問題。有三種常見的方法來解決第一種情況。
1。最常用的CORS
CORS實際上是直接在服務(wù)器上配置的,CORS位于請求的響應(yīng)頭中。允許的來源包括網(wǎng)站,這樣瀏覽器就不會截獲請求的響應(yīng)。
訪問控制允許原點:*
2。Jsonp
Jsonp使用script標(biāo)記跨域,并在script的SRC后添加一個回調(diào)函數(shù),請求可執(zhí)行的JavaScript文本。
3. Nginx轉(zhuǎn)發(fā)
Nginx轉(zhuǎn)發(fā)是一種相對安全的方法,在公司中經(jīng)常使用。只需將前端請求轉(zhuǎn)發(fā)到nginx配置文件中跨域服務(wù)器的IP地址即可
跨域問題來自JavaScript的同源策略,即只有協(xié)議主機名和端口號(如果有)相同,才允許相互訪問。也就是說,JavaScript只能訪問和操作自己域中的資源,不能訪問和操作其他域中的資源。