No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax跨域訪問解決方案
阿新 • • 發佈:2018-12-10
出現該錯誤是由於存在網站跨域訪問的問題。
什麼是網站跨域,簡單來講,當你通過ajax來請求或傳送資料時,兩個域名之間不能跨過域名來發送請求或者請求資料,瀏覽器會認為它是不安全的。
解決方式:
1、伺服器端解決方案
設定響應報文頭
response.setHeader("Access-Control-Allow-Origin", "*");
“Access-Control-Allow-Origin”表示允許跨域訪問,“*”表示允許所有來源進行跨域訪問,這裡也可以替換為特定的域名或ip。
2、客戶端解決方案
將ajax請求中的dataType屬性設定為“jsonp”,jsonp是專門用來解決跨域訪問而誕生的。
$(function($){ var url = 'http://*****/index'; $.ajax(url, { data: { 'cityname': '成都', 'date': '2016.12.12' }, dataType: 'jsonp', crossDomain: true, success: function(data) { if(data && data.resultcode == '200'){ console.log(data.result.today); } } });