【问题标题】:Ajax Headers LocationAjax 标头位置
【发布时间】:2018-02-06 10:02:21
【问题描述】:

我在 ajax 中发出请求,如果成功,我应该将我重定向到一个链接,该链接必须在返回值(在响应标头中)中返回,并且可以访问这个著名的值“位置”

我在 ajax 中发出请求,如果成功,我应该将我重定向到一个链接,该链接必须在返回值(在响应标头中)中返回,并且可以访问这个著名的值“位置”

我已经尝试过使用 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)

【问题讨论】:

    标签: javascript jquery ajax http-headers


    【解决方案1】:

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

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

    也看到了:

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

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

    【讨论】:

    • 感谢您的回答。我尝试使用大写 L,但没有任何变化……我一直在寻找 :)
    • 你使用的是哪个 jQuery 版本?
    • 尝试使用“完成”而不是“成功”...检查我的帖子编辑。
    • 谢谢你的回答,往下看->
    • "done" 超出块,放在 "$.ajax..." 内。
    猜你喜欢
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 2016-10-07
    相关资源
    最近更新 更多