一、什么是跨域問題
在頁面中使用js訪問其他網(wǎng)站或接口的數(shù)據(jù)時,就會出現(xiàn)跨域問題,比如在網(wǎng)站中使用ajax請求其他網(wǎng)站的天氣、快遞或者其他數(shù)據(jù)接口時,以及hybrid app中請求數(shù)據(jù),瀏覽器會提 示以下錯誤:
XMLHttpRequest cannot load http://你請求的域名. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://當(dāng)前頁的域名' is therefore not allowed access。
二、為什么會出現(xiàn)跨域問題
因?yàn)闉g覽器受到同源策略的限制,當(dāng)前域名的js只能讀取同域下的窗口屬性。
同源策略:不同的域名, 不同端口, 不同的協(xié)議不允許共享資源的, 保障瀏覽器安全。
同源策略是針對瀏覽器設(shè)置的門檻。如果繞過瀏覽就能實(shí)現(xiàn)跨域,所以說早期的跨域都是打著安全路數(shù)的擦邊球,都可以認(rèn)為是 hack 處理。
三、配置瀏覽器,繞開瀏覽器安全限制,實(shí)現(xiàn)跨域請求(我理解也就是關(guān)閉瀏覽器的同源策略,因此比較危險,只適合自己調(diào)試使用);
Windows用戶
1、徹底關(guān)閉瀏覽器,并在任務(wù)管理器中確認(rèn)沒有相關(guān)的該瀏覽器進(jìn)程在運(yùn)行
2、在桌面瀏覽器的快捷方式處點(diǎn)擊右鍵->屬性
3、在打開的對話框中設(shè)置瀏覽器的啟動屬性,在目標(biāo)欄粘貼一下命令:
--args --disable-web-security --user-data-dir

4、關(guān)閉瀏覽器重新打開,記住一定要關(guān)閉后重新打開,當(dāng)瀏覽器窗口出現(xiàn)下面的橫條時就說明配置成功了:

此時你的瀏覽器就可以訪問之前因?yàn)榭缬騿栴}不能訪問的接口了,Windows用戶設(shè)置后最好不要直接雙擊xx.html文件打開網(wǎng)頁,而要先打開瀏覽器,而后再雙擊html文件或者在地址欄輸入file://文件地址打開文件