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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/jquery/183267.html

猜你在找的jQuery相关文章