JSONP请求后的语法错误

时间:2017-02-02 02:15:26

标签: javascript jquery json ajax jsonp

我尝试获取JSONP的数据,但在调用该函数时会返回语法错误。我对这个话题很陌生,不明白为什么。可能是因为我没有理解JSONP请求的所有内容。如果有人可以帮助我,那就太好了。

执行代码:

$.ajax({
        url: "https://backpack.tf/api/IGetMarketPrices/v1?format=json&callback=JSONP&key=XXX&appid=730",
        dataType: "jsonp",
        data: {format: "json"},
        type: "GET",
        jsonp: "response",
        jsonpCallback: "response",
        success: function( response ) {
          console.log( response ); // server response
        }
      });

(我必须审查我的API密钥。)

错误:Uncaught SyntaxError: Unexpected token :

回复是:

{"response":{"success":1,"current_time":1486000891,"items":{"AK-47 | Aquamarine Revenge (Battle-Scarred)":{"last_updated":1485997229,"quantity":80,"value":1092},...

第一个:由Chrome强调。

Here是API文档。

1 个答案:

答案 0 :(得分:1)

从试验和错误 - 令人印象深刻,因为我没有API密钥

ChatSession {Reply}

$.ajax({
    url: "https://backpack.tf/api/IGetMarketPrices/v1?format=jsonp&key=XXX&appid=730",
    dataType: "jsonp",
    type: "GET",
    success: function( response ) {
      console.log( response ); // server response
    }
});

要解释... jQuery会自动在jsonp请求中添加一个名为$.ajax({ url: "https://backpack.tf/api/IGetMarketPrices/v1", dataType: "jsonp", type: "GET", data: { format: 'jsonp', key: 'XXX', appid: 730 }, success: function( response ) { console.log( response ); // server response } }); 的查询参数...因为API声明您需要在名为callback的参数中定义回调名称,您可以让jQuery使用默认值callback

然后,jQuery创建一个具有长随机名称的函数,并将callback参数的值设置为该函数 - 因此您不必担心callback或{ {1}}参数 - 默认值很好

我必须遗漏一些基本的东西,因为这应该有效!