2017-02-02 7 views
-1

Я пытаюсь получить данные 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

Это означает, что у вас нет JSONP, у вас есть JSON. – epascarello

+2

'Ответ:' не JSONP - это просто JSON - возможно, backback.tf не делает «JSONP» –

+0

@Jaraomanda X, но в документации он говорит только обратный вызов JSONP. – user405981

ответ

1

Из проб и ошибок - впечатляет, как у меня нет ключа API

$.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 
    } 
}); 

или

$.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 
    } 
}); 

объяснить ... JQuery автоматически добавляет параметр запроса с именем callback на JSONP запросов ... поскольку API заявляет, что вам нужно определить имя обратного вызова в параметре с именем callback, вы можете позволить jQuery использовать значение по умолчанию callback

Затем JQuery создает функцию с длинным случайным именем, и устанавливает значение параметра этой функции callback - так что вам не придется беспокоиться о jsonp или jsonpCallback параметрах - по умолчанию хорошо

я должен пропустите что-то основное, потому что это должно сработать!

+0

Вит, который я получаю' Uncaught ReferenceError: jQuery31109337491141215399_1486002924271 не определен' – user405981

+0

Я просто заметил, что это, вероятно, потому, что ответ теперь завернут в 'jQuery31109337491141215399_1486002924271 (...)', но я не знаю, почему это сейчас. Надеюсь, это поможет. – user405981

+0

«Ответ теперь завернут» - да, вот как работает JSONP !!! –

Смежные вопросы