Uncaught SyntaxError: Unexpected token : 開發遇到的跨域問題

ChangeSub發表於2018-06-05

先描述一下,這個問題,是如何遇到的

在ajax呼叫遠端服務的時候,報了一個Origin xxxxxx is not allowed by Access-Control-Allow-Origin 的錯誤,

大概的意思就是說,沒有許可權,解決方法據說要在服務端的response裡面設定一個許可權(網上有例子),

可是,服務端的方法,不可以修改,

所以就用到了jsonp的跨域訪問。

 

具體的格式如下:

    jQuery.ajax({ 
        type: `GET`,
        url: `http://wncrunners.com/admin/colors.json` ,
        dataType: `jsonp`, 
        success: function(data) { 
            alert(`success`);
        }
    error:function(){
      console.log(`error`);
    } });

但是呢,具體呼叫時,就報了一個這樣的錯;[雖然報錯,但是json資料已經正確取出]
該錯誤是google報的:報錯資訊:Uncaught SyntaxError:Unexpected token:
這個大概的意思說:返回的是json,但是指定的
dataType卻是jsonp,所以會報這種錯誤。

解決的辦法如下:[我的程式碼是這樣的]
  $.ajax({
      crossOrigin: true,
      url :""http://cyx.ehang365.cn/map/ship-static-info/ajax/getByMmsi?mmsi="+prop.mmsi,
      type : "GET",
      success:function(data){
         console.log(data);
      }
    })

可以採用的方法有:
  1-下載[http://www.ajax-cross-origin.com/]中的ajax跨源外掛。
  2-在普通jQuery連結下面新增一個指令碼連結。
  3-在ajax函式中新增行“crossOrigin: true”[這裡採用的就是這種]。

 

不好意思,問題未配圖。其實大概意思還是比較清晰的。

 



相關文章