Как я могу запросить API Best Buy Remix с помощью jQuery?
-
20-09-2019 - |
Вопрос
Вот код, с которым я пытался работать:
$.getJSON("http://api.remix.bestbuy.com/v1/products(search=" + escape(searchCriteria) + ")?apiKey=" + hhApiKey + "&format=json&callback=?",
function(data) {
if(data.error) {
alert("I'm sorry, there was an error processing your request.");
} else {
alert(data);
}
});
Однако возвращаемые данные содержат ошибку, поскольку они не понимают запрошенный URL-адрес.Я посмотрел вкладку сети в Firebug и вот URL-адрес, к которому он пытается обратиться:
http://api.remix.bestbuy.com/v1/products(search=digital%20camera)?apiKey=myapikey&format=json&callback=json1264868431&_1254866270659=
Я думаю, что проблема заключается в выделенном жирным шрифтом разделе, который, насколько я могу судить, добавляется без всякой причины.Я думаю, что Remix API это видит и считает, что это неудачный параметр.Есть ли способ остановить это добавление?
Решение
При отключении настройки кэша для jQuery ajax он попытается добавить метку времени к строке запроса.Возможно, это проблема, с которой вы столкнулись.Попробуйте вызвать функцию с явно включенным кэшированием.
$.ajax({
type: "GET",
url: "http://api.remix.bestbuy.com/v1/products(search=" + escape(searchCriteria) + ")?apiKey=" + hhApiKey + "&format=json&callback=?",
cache: true,
success: function() {
alert('success');
},
dataType: 'json'
});
Другие советы
Я только что зашел по этому URL-адресу, и там написано «403 Разработчик неактивен».Возможно, вам понадобится регистрация разработчика API, чтобы пройти, и активна ли ваша учетная запись?
Многие из этих запросов API (Netflix) требуют, чтобы вы сначала вошли в систему, и вам будет присвоен идентификатор сеанса, который нужно включить в строку запроса.Может быть, вы не вошли в систему?
Извините, если эти вопросы кажутся очевидными, я просто подбрасываю несколько идей.
Есть две проблемы с запросом Remix API, указанным выше:«&» и «подчеркивание» в обратном вызове JSON.Символ «&» заставляет API думать, что это новый параметр, который он не понимает.«Подчеркивание» в любом обратном вызове JSON приведет к тому, что анализатор запросов Remix вернет «не удалось понять ..." ошибка.