[英]“Uncaught SyntaxError: Unexpected token :” with $http.jsonp
[英]“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.