我尝试使用AJAX使用以下简单代码访问我的API:
$.ajax({
type: "GET",
url: "http://SERVER_IP/API-test/public/login/username/userpass",
crossDomain: 'true',
dataType: 'jsonp',
contentType: "application/json",
success: function(whatever){
alert('HTTP request is a success');
console.log(whatever);
},
error: function(errorText){
console.log("Error Test: ",errorText);
}
});
作为回应,我从服务器得到400(错误的请求)。此代码生成以下请求:
http://SERVER_IP/API-test/public/login/username/userpass?callback=jQuery1112009842987591400743_1429090394748&_=1429090394749
我猜问题出在这一部分:
?callback=jQuery1112009842987591400743_1429090394748&_=1429090394749
已添加到我的请求中。
我怎么能避免这个?或者可能是其他地方问题的根源?
答案 0 :(得分:0)
查询参数是否导致HTTP代码400取决于您的服务器实现。 Bot参数由jQuery.ajax添加,以避免缓存问题。
_
参数包含避免缓存的当前时间戳。
添加callback
参数是因为您正在查询"远程"带有jsonp "technique"的server(= crossdomain),这意味着url与加载javascript / html / etc文件的url不同。
除了您正在查询登录端点(至少它是这样命名)并且不发送任何验证数据,如用户名或密码。执行GET请求时,这些信息需要包含在查询部分中。也许服务器返回" Bad Request",因为凭据丢失了?