2015-10-02 68 views
-2

每當我做了以下Ajax請求獲得頁面的HTML:未捕獲的SyntaxError - Ajax請求

 $.ajax({ 
      type: 'GET', 
      dataType:"jsonp", 
      url: link, 
      success: function(response){console.log(response)}, 
      async:true //asynchronous request 
     }); 

我得到的錯誤:"Uncaught SyntaxError: Unexpected token <"

這是爲什麼,我該如何解決它?

+1

「jsonp」格式是「頁面的html」嗎? – Sparky

+0

不確定。我對jsonp格式請求很陌生。有什麼方法可以在我的請求中將其更改爲jsonp格式?如果沒有,我還可以如何獲得頁面的html而不會遇到Access-Control-Allow-Origin錯誤? – jgozal

+0

您正在調用的服務器未返回JSONP。你不能只設置JSONP,並期望它工作,你打電話的頁面需要支持它。 – epascarello

回答

0

dataType屬性你告訴函數期望的JSON響應:

dataType:"jsonp" 

你得到的錯誤是,當你的函數需要JSON而是得到HTML發生錯誤。因此Unexpected token <就是錯誤所描述的,因爲函數無法解析HTML響應(這與JSON通常以'<'字符開始不同)。

+0

我明白了。如果我把HTML我得到以下錯誤,我不太清楚我將如何解決它:沒有'Access-Control-Allow-Origin'標題出現在請求的資源。因此不允許原產地'null'訪問。 – jgozal

+0

沒錯,所以要麼你必須遵循相同的來源策略,要麼你必須使用正確的jsonp。如果您不控制目標服務器,則無法使用cilent-side javascript解決這些問題。 –

+0

@jgozal閱讀Kevin B所說的內容,並查看[這個答案](http://stackoverflow.com/a/20035319/1200185)。 – Alternatex

相關問題