[英]AJAX call error - status of 400 (Bad Request)
我正在尝试使用BloomAPI通过查询他们的名字和姓氏来检索Doctor的NPI号码。 我正在使用Jquery Ajax来获取JSON数据的get请求。
当我在终端中执行CURL时,我能够获取JSON数据:curl -X GET'http: //www.bloomapi.com/api/search ?offset = 0&key1 =last_name&op1 = eq&value1 = LL&key2 = first_name &op2 =eq&value2 = JOHN “
出于以下目的 - 我只是在params中硬编码到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
回调是一个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提供者可能能够提供有关如何执行此操作的反馈。
将来,您可以使用Web调试器轻松检查您收到的错误/发送的内容; 我用Fiddler来解决这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.