簡體   English   中英

成功的HTTP請求后出現“ Uncaught SyntaxError:意外的令牌<”

[英]“Uncaught SyntaxError: Unexpected token <” after successful HTTP Request

我正在嘗試將jQuery與SAP后端系統提供的ODATA REST服務一起使用AJAX。

          $.ajax({
                type: 'GET',
                url: 'http://sapxx.sapms/sap/opu/odata/.../',                   
                async: true,
                dataType: 'jsonp',                  
                username: 'username',
                password: 'password',
                crossDomain: true,                  
                success: function() {
                    alert('Done.');
                },
                error: function() {
                    alert('Error.');
                },
            });

該請求返回狀態200,我從服務器獲得響應,該響應稱為“?callback = jQuery3100687 ...”,其中包含xml代碼。 所有這些都可以在Chrome調試器中看到。 但是在成功的HTTP請求之后,我得到了上述錯誤

Uncaught SyntaxError: Unexpected token <

我懷疑錯誤是由於在請求中將“ dataType”參數設置為“ jsonp”引起的。 有什么辦法可以解決此錯誤? 服務器只能使用XML格式進行響應。 該請求僅在dataType設置為“ jsonp”時有效,我想是因為它啟用了CORS。 發送請求后,盡管狀態為200,但仍收到“錯誤”警報。

您說您從服務器獲得xml響應。 但是,您的ajax請求是針對jsonp設置的:

dataType: 'jsonp',

嘗試以下方法:

dataType: 'xml',
success: function(xml) {
    //remainder of the code
}

如果將dataType設置為jsonp ,則jQuery將嘗試將響應解析為JSON。 這會導致錯誤,因為響應不是JSON。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM