Ajax本身是不支援跨域的,而我們在開發工作中,可能會遇到本地開發環境未配置相關代碼,需要到其他伺服器上擷取資料的情況,尤其在用html5開發app的過程中,前背景完全分離,使用Ajax進行資料互動,這種情況非常常見。
我們可以通過對谷歌浏覽器進行設定,利用指令行标記 –disable-web-security ,友善跨域調用資料做測試。
版本号49之前的跨域設定
1.首先谷歌快捷方式上右擊,在下拉清單中選擇屬性。
2.打開屬性視窗,切換到快捷方式頁籤。
3.在目标路徑的後面添加【 –disable-web-security】,格式如下:C:\Users\as\AppData\Local\Google\Chrome\Application\chrome.exe –disable-web-security ,其中chrome.exe與–disable之間有一個空格。

4.點選應用,然後點選确定關閉視窗。
5.關閉浏覽器重新通過桌面快捷方式的形式打開浏覽器,浏覽器提示”您使用的是不受支援的指令行标記: –disable-web-security。穩定性和安全性會有所下降”,說明設定成功。
版本号49之後的chrome跨域設定
此處需要先備份書簽和個人設定
chrome的版本升到49之後,跨域設定比以前嚴格了,在打開指令上加–disable-web-security之後還需要給出新的使用者個人資訊的目錄。衆所周知chrome是需要用gmail位址登入的浏覽器,登入後就會生成一個存儲個人資訊的目錄,儲存使用者的收藏、曆史記錄等個人資訊。49版本之後,如果設定chrome浏覽器為支援跨域模式,需要指定出一個個人資訊目錄,而不能使用預設的目錄,估計是chrome浏覽器怕使用者勿使用跨域模式洩露自己的個人資訊(主要是cookie,很多網站的登入token資訊都是儲存在cookie裡)。
具體做法為:
1.在電腦上建立一個目錄,例如:C:\MyChromeDevUserData
2.在屬性頁面中的目标輸入框裡加上 –disable-web-security –user-data-dir=C:\MyChromeDevUserData,–user-data-dir的值就是剛才建立的目錄。
3.點選應用和确定後關閉屬性頁面,并打開chrome浏覽器。
再次打開chrome,發現有“–disable-web-security”相關的提示,說明chrome又能正常跨域工作了。
跨域成功後,首頁換成了google的welcome頁面,同時原來收藏的連結和曆史記錄都不見了,而C:\MyChromeDevUserData目錄下則生成了新的個人資訊相關的檔案。
什麼是跨域?
簡單的來說,出于安全方面的考慮,頁面中的JavaScript無法通路其他伺服器上的資料,即“同源政策”。而跨域就是通過某些手段來繞過同源政策限制,實作不同伺服器之間通信的效果。
具體政策限制情況可看下表:
總體而言:隻要協定、域名、端口有任何一個不同,都被當作是不同的域。