Javascript AJAX调用错误-状态为400(请求错误)

Javascript AJAX调用错误-状态为400(请求错误),javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图使用BloomAPI通过查询医生的名字和姓氏来检索他们的NPI号。我正在使用jQueryAjax对JSON数据发出get请求 在终端中执行CURL时,我能够获取JSON数据:CURL-xget“” 出于以下目的-我只是将参数硬编码到URL中。 我收到一个“加载资源失败:服务器响应状态为400(错误请求)”错误。知道我可能做错了什么吗 $.ajax({ type: 'GET', url: 'http://www.bloomapi.com/api/search?offset=0

我试图使用BloomAPI通过查询医生的名字和姓氏来检索他们的NPI号。我正在使用jQueryAjax对JSON数据发出get请求

在终端中执行CURL时,我能够获取JSON数据:CURL-xget“”

出于以下目的-我只是将参数硬编码到URL中。 我收到一个“加载资源失败:服务器响应状态为400(错误请求)”错误。知道我可能做错了什么吗

$.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'
  }).done(function(server_data) {
    console.log(server_data)
  }).fail(console.log("failed"));

这是一个奇怪的问题……您的代码实际上基本上是正确的,但是,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
jQuery111207365460020955652_1428455335256({"name":"ParameterError","message":"_ are unknown parameters","parameters":{"_":"is an unknown parameter"}});
回调是一个jsonp构造,\是一种破坏缓存的方法。但是,bloomapi似乎不喜欢这样:

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
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提供程序可能能够提供有关如何执行此操作的反馈


将来,您可以很容易地检查您正在接收的错误/您使用Web调试器发送的错误;我使用FIDDLE来解决这个问题。

也许服务器不支持JSONP。布瑞恩的答案在我看来是正确的。我已经打开了一个bug来考虑改进这种行为。