如何查询带有jQuery的Best Buy Remix 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中的网络标签,这里是它试图呼叫的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 Developer Inactive”。 您是否需要进行API开发人员注册才能完成并且您的帐户是否有效?

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

对不起,如果这些看起来很明显,我只是在那里抛出一些想法。

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

Interesting Posts