首先,我正在谷歌浏览器工作,如果这有帮助。这里是行为:
我通过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,以便我可以发送另一个请求。
解决方法
原文地址:https://www.jb51.cc/jquery/183267.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。