以下是我一直在尝试使用的代码:
$.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看到它并认为它是一个拙劣的参数。有没有办法阻止它被添加?
答案 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查询解析器返回“无法理解......”。错误。