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请求需要进行身份验证。

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...