簡體   English   中英

使用jsonp的Ajax get給出“ SyntaxError:missing; 聲明前”錯誤

[英]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.

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