API Best Buy с AJAX и jQuery - ошибки - PullRequest
       41

API Best Buy с AJAX и jQuery - ошибки

0 голосов
/ 06 августа 2011

В ответ на этот вопрос говорит, у меня есть этот блок кода, чтобы запросить API Best Buy:

$.ajax({
    type: "GET",
    url: "http://api.remix.bestbuy.com/v1/products(search=camera)?apiKey=" + apiKey + "&format=json&callback=?",
    cache: true,
    success: function(data) {
        alert('success');
    },
    dataType: 'json'
});

Код работает нормально, но возвращает сообщение об ошибке от Best Buy:

"Не удалось понять" / v1 / products (search = camera)? ApiKey = myApiKey & format = json & callback = jQuery16209624163198750466_1312575558844 '"

Если я пропущу "callback =?" URL-адрес возвращает продукты очень хорошо, когда я захожу к нему в браузере, но в коде он выдает ошибку JavaScript:

"XMLHttpRequest не может загрузить http://api.remix.bestbuy.com/v1/products(search=camera)?apiKey=myApiKey&format=json. Источник http://mysite.com не разрешен Access-Control-Allow-Origin."

Ответы [ 3 ]

2 голосов
/ 06 августа 2011

набор dataType в jsonp

$.ajax({
    type: "GET",
    url: "http://api.remix.bestbuy.com/v1/products(search=camera)?apiKey=" + apiKey + "&format=json",
    cache: false,
    crossDomain:true,
    success: function(data) {
        alert('success');
    },
    dataType: 'jsonp',

});
1 голос
/ 30 июля 2014

Анализатор запросов Remix не может обработать подчеркивание в обратном вызове JSON. Если у вас есть обратный вызов без подчеркивания, он должен работать. Имейте в виду, что кэш Remix игнорирует значение обратного вызова JSON, поэтому, если запрос идентичен, за исключением того, что обратный вызов изменился, вы получите кэшированный ответ (т. Е. Ошибка «не удалось понять ...»). Немного измените запрос, и вы получите новый ответ.

1 голос
/ 08 августа 2011

Обновление: Нашли решение, но оно не идеальное.Я бы предпочел не использовать php, но это работает.

У меня есть php-файл, который собирает данные:

$requestUrl="http://api.remix.bestbuy.com/v1/products(search=camera)?format=json&apiKey={$apiKey}";
$data=file_get_contents($requestUrl);
echo $data;

Затем я получаю этот файл с помощью jquery:

$.ajax({
    url: "js/getBestBuy.php",
    dataType: "json",
    success: function(data) {
        alert('success');
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...