Ajax标头位置

时间:2018-02-06 10:02:22

标签: javascript jquery ajax http-headers

我在ajax中发出请求,在成功的情况下应该将我重定向到一个必须在返回值中返回的链接(在响应头中)并且可以访问这个着名的值“location”

enter image description here

我在ajax中发出请求,在成功的情况下应该将我重定向到一个必须在返回值中返回的链接(在响应头中)并且可以访问这个着名的值“location”

我已经尝试使用xhr.getResponseHeader ("location"),但没有任何东西可以返回null。

此外,我在我的ajax请求中放入success的代码未执行,或者当我将其放入complete时,它已被充分考虑(我已检查并且我的xhr.status是201)

我告诉你我的要求:

$.ajax({
    url: 'http://api.asaplace.v-labs.fr/users/me/cards',

    dataType: 'json',

    type: 'POST',

    headers: {
    'Authorization': 'Bearer ' + this.state.token
    },

    success: function(data,status,xhr){
        if(xhr.status === 201){
            alert("fonction success");
            console.log(xhr.getResponseHeader("location"));
        }

    },

    complete: function(xhr) {
        console.log(xhr.getResponseHeader("Location"));
    },


});

正如我上面在控制台中说的那样,我会看到null,但它是complete而不是success

我也想知道,由于我的网站是在http中,并且SMoeny在https中,因此可能存在问题......

因此,标头类似于基本身份验证,承载身份验证只能通过HTTPS(SSL)使用。

(我还指出这不是状态200)

1 个答案:

答案 0 :(得分:0)

尝试使用" L"而不是" l" (大写):

console.log(xhr.getResponseHeader("Location"));

也可以看到:

  

弃用通知:jqXHR.success(),jqXHR.error()和   从jQuery 3.0开始,jqXHR.complete()回调被删除。您可以使用   jqXHR.done(),jqXHR.fail()和jqXHR.always()代替。

参考:http://api.jquery.com/jQuery.ajax/#jqXHR