跨域問題,什麼是跨域,怎麼解決?
阿新 • • 發佈:2019-01-05
今天我學習了一下跨域的問題,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就不會有跨域的問題了.