1.什麼引起了ajax跨域不能的問題
ajax本身實際上是通過XMLHttpRequest對象來進行資料的互動,而浏覽器出于安全考慮,不允許js代碼進行跨域操作,是以會警告或者直接不執行。
例如A網址通過js請求B網址内容,通過浏覽器檢測,出現下面錯誤,就表示浏覽器禁止跨域請求
2.有什麼完美的解決方案麼?
暫時沒有。解決方案有不少,但是隻能是根據自己的實際情況來選擇。
網上的方法很多,可以百度下,下面是我的方法
①、A網址将ajax請求到本域名下的控制器,然後在本域名下的控制器,例如php的file_get_contents或者curl請求外部B網站url資料,然後傳回給自己域名下的JS
②、使用jquery ajax資料類型改為 dataType : 'jsonp';具體用法自行百度JSONP就不一一闡述了。我自己将這個項目用在了微信輪播項目中
③、如果B網站是自己的,那麼隻需修改伺服器配置,下面舉例說明IIS設定跨域
打開IIS控制台,找到域名下的“HTTP響應标頭”
打開http響應頭,分别添加下面2個參數
Access-Control-Allow-Headers:Content-Type, api_key, Authorization
Access-Control-Allow-Origin:*
完成後如下圖