如何使用/ jQuery查询Best Buy Remix API?

时间:2009-10-06 22:09:24

标签: jquery jsonp best-buy-api

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

$.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中的网络标签,这里是它试图呼叫的网址:

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

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

3 个答案:

答案 0 :(得分: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'
}); 

答案 1 :(得分:0)

我刚刚访问了该网址,并显示“403 Developer Inactive”。您是否需要进行API开发人员注册才能通过并且您的帐户是否有效?

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

很抱歉,如果这些问题显而易见,我只是在那里提出一些想法。

答案 2 :(得分:0)

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