1. 程式人生 > >No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax跨域訪問解決方案

No 'Access-Control-Allow-Origin' header is present on the requested resource.'Ajax跨域訪問解決方案

出現該錯誤是由於存在網站跨域訪問的問題。

什麼是網站跨域,簡單來講,當你通過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);
          }
        }
      });