这是一个奇怪的......你的代码实际上基本上是正确的,但是,bloomapi 似乎不支持以 jquery 的方式禁用缓存。
当你进行 jquery 调用时,实际的 url 会变成这样:
http://www.bloomapi.com/api/search?offset=0&key1=last_name&op1=eq&value1=LIN&key2=first_name&op2=eq&value2=JOHN&callback=jQuery111207365460020955652_1428455335256&_=1428455335257
回调是一个 jsonp 构造,而 _ 是一种破坏缓存的方法。然而,bloomapi 似乎不喜欢这样:
jQuery111207365460020955652_1428455335256({"name":"ParameterError","message":"_ are unknown parameters","parameters":{"_":"is an unknown parameter"}});
为了解决这个问题,您可以禁用缓存清除,如下所示:
$.ajax({
type: 'GET',
url: 'http://www.bloomapi.com/api/search?offset=0&key1=last_name&op1=eq&value1=LIN&key2=first_name&op2=eq&value2=JOHN',
dataType: 'jsonp',
cache: true
}).done(function(server_data) {
console.log(server_data)
}).fail(function() { console.log("failed") });
如果这是一个问题,您将必须小心如何破坏缓存; API 提供商也许能够提供有关如何执行此操作的反馈。
将来,您可以使用网络调试器轻松检查收到的错误/发送的内容;我用 Fiddler 来解决这个问题。