[英]Ajax get with jsonp gives “SyntaxError: missing ; before statement” error
我正在使用jQuery進行GET請求並以json格式獲取響應。 但是,當我嘗試使用它時,它會在瀏覽器開發人員工具控制台中拋出以下錯誤消息。
語法錯誤:丟失; 聲明前[了解更多]主持人:1:10 >>
下面是我的代碼。
$.ajax({
type: "GET",
url: url,
async: false,
cache: false,
data: { "filter": "host.vars.osgroup==\"unix\""},
jsonp: "callback",
dataType: "jsonp",
contentType: "application/json; charset=utf-8",
headers: {
accept:'application/json',
"Authorization": "Basic " + btoa(username + ":" + password)
}
// },
// success : function(data)
// {
// console.log(data);
// }
})
.done(function(html) {
$("#displayElement").append(html);
});
僅當服務器的響應不是有效的JSONP格式時,才會發生此錯誤。 要清除您的東西,JSONP不是json。 這是您可以說的javascript腳本。 如果您使用的是說Php,那么您的php應該輸出如下:
header("Content-Type: application/json");
exit("mycallback(".json_encode(['error' => 0,'auth_token' => $_COOKIE['server_token']]).")");
您會看到Php代碼正在輸出一個字符串,該字符串具有以json格式的數據作為參數的javascript函數調用。 現在,在ajax調用中,您應該精簡所有內容。 Ajax調用應如下所示:
$.ajax({
url:'http://ssoidpclient.local/get_auth_token',
dataType: 'jsonp',
jsonp: false,
jsonpCallback: 'mycallback',
success:function(data)
{
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.