微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – AJAX重定向困境,如何获取重定向网址或如何设置重定向请求的属性

首先,我正在谷歌浏览器工作,如果这有帮助。这里是行为:

我通过jQuery发送xhr请求到一个远程站点(这是一个chrome扩展,我设置了所有的跨站点设置…):

$.ajax({
    type: "POST",contentType : "text/xml",url: some_url,data: some_xml,username: user,password: pass,success: function(data,status,xhr){
        alert(data);
    },error: function(xhr,error){
        alert(xhr.status);
    }
});

正在设置的网址返回302(这是预期的),Chrome跟随重定向(也是预期的)。

新网址会返回凭据提示,不会从原始请求中提取凭据,因此Chrome会显示一个登录对话框。如果我放入原始的凭据,我会收到有关发送的无效请求的响应(这是一个有效的HTTP请求 – 200 – 远程服务器不喜欢其中一个标头)。

在Chrome中查看开发者视窗时,发送了两个请求。第一个是在AJAX请求中设置的所有设置的原始URL。第二个是重定向URL,使用“GET”的方法,“POST”字段中没有任何内容,没有凭据。

我可以做什么,我很失落。我需要:

>获取重定向网址,以便我可以发送第二个请求(xhr.getResponseHeader(“Location”)不起作用)
>让新的重定向请求保留原始请求中的设置,或者
>获取错误来源的最终URL,以便我可以发送另一个请求。

理想情况下,我不希望用户在这个对话框中再次放入他们的凭据,但是如果我能够得到最终的URL,我可以采取一切。

解决方法

您没有与您的请求相关联的认证会话吗?您是否填写某些标头以进行身份​​验证,或者是否使用类似于HTTP基本身份验证的内容

另外,如果你有一个302,是不是因为你没有首先认证,或者是有效的302,这是正如预期的?这很重要,因为如果您没有首先认证,那么您所遵循的GET请求需要进行身份验证。

原文地址:https://www.jb51.cc/jquery/183267.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐