1. 程式人生 > >跨域問題,什麼是跨域,怎麼解決?

跨域問題,什麼是跨域,怎麼解決?

今天我學習了一下跨域的問題,access-controller-allow-origin

什麼是跨域問題?跨域問題發生的原因,

1.瀏覽器限制,

2.跨域,域名不同,埠號不同,都會發生

3.xhr請求,xmlhttprequest請求

只要滿足這三點就一定會發生跨域請求。

誤區:一直以來都覺得是因為後臺介面的問題導致的跨域,其實不是,和後臺無關。

當然,後臺也能做這個驗證,並導致這個問題。

跨域的解決思路,我們知道了跨域的原因,那麼我們也就有了解決跨域的辦法,

1.讓瀏覽器不去做校驗,就可以不產生跨域,但是這是修改客戶端,只適合測試,並不是完美的解決辦法

disable-web-security 可以禁止瀏覽器做跨域的校驗.

2.xhr的解決辦法,我們都知道jsonp是解決跨域的問題,但是我們卻不知道為什麼能解決,有哪些好處和不好的地方,目前為止jsonp無法滿足現在的開發需求,已經使用的越來越少了。

jsonp的解決辦法,是需要修改後臺程式碼的,後臺也需要返回jsonp的格式的程式碼

jsonp的傳送的type 是script 不是xhr所以就可以進行跨域了,

jsonp的弊端分析

3.重點,解決跨域的問題,

一.被呼叫方也就是後臺介面修改,從a域名訪問b的時候,在返回的欄位裡告訴瀏覽器不做跨域校驗,就可以了.

1.增加返回的欄位就可以了,

2.修改nginx配置

3.修改apache配置

二.呼叫方修改,使用一個代理,讓瀏覽器覺得每次你都是從b訪問的b就不會有跨域的問題了.