0

这是我一直在尝试使用的代码:

$.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 中的 net 选项卡,这是它试图调用的 URL:

http://api.remix.bestbuy.com/v1/products(search=digital%20camera)?apiKey=myapikey&format=json&callback=json1264868431 &_1254866270659=

我认为问题在于粗体部分,据我所知,该部分无缘无故被添加。我认为 Remix API 看到了它并认为它是一个拙劣的参数。有没有办法阻止它被添加?

4

3 回答 3

3

当禁用 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'
}); 
于 2009-10-06T22:22:22.923 回答
0

上述 Remix API 查询存在 2 个问题:JSON 回调中的“&”和“下划线”。"&" 使 API 认为它是一个它不理解的新参数。任何 JSON 回调中的“下划线”都会导致 Remix 查询解析器返回“无法理解......” 错误。

于 2014-07-29T22:33:59.143 回答
0

我刚刚访问了那个 URL,上面写着“403 Developer Inactive”。您是否需要进行 API 开发人员注册才能通过并且您的帐户是否有效?

许多这些 API 请求 (Netflix) 要求您先登录,它会为您分配一个会话 id,以包含在您的查询字符串中。会不会是你没有登录

抱歉,如果这些问题看起来很明显,我只是提出一些想法。

于 2009-10-06T23:09:04.317 回答