从AJAX获得对GET请求的400响应

时间:2015-04-15 09:41:32

标签: ajax api

我尝试使用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

已添加到我的请求中。

我怎么能避免这个?或者可能是其他地方问题的根源?

1 个答案:

答案 0 :(得分:0)

查询参数是否导致HTTP代码400取决于您的服务器实现。 Bot参数由jQuery.ajax添加,以避免缓存问题。

_参数包含避免缓存的当前时间戳。

添加callback参数是因为您正在查询"远程"带有jsonp "technique"的server(= crossdomain),这意味着url与加载javascript / html / etc文件的url不同。

除了您正在查询登录端点(至少它是这样命名)并且不发送任何验证数据,如用户名或密码。执行GET请求时,这些信息需要包含在查询部分中。也许服务器返回" Bad Request",因为凭据丢失了?