Wic*_*wok 2 javascript jquery http
出于安全原因,我编写了一些位于第三方服务器上的HTML/Javascript.此页面执行javascript帖子到同一站点上的另一个页面.但是,它不是响应有用的数据,而是想要执行重定向(如果您通过普通的HTML表单发布到此页面,它将重定向您的浏览器).我该如何处理这个过程?我基本上希望能够提取它试图重定向的url的查询参数(然后将此链接放入隐藏的表单字段).
这是我的基本ajax帖子......
$.ajax({
url: '/someurl/idontcontrol',
data: serialized_form_data,
async: false,
type: 'POST',
success: function(data, textStatus, x) {
alert(x);
alert(x.getAllResponseHeaders());
return false;
$('#redirect_link').val(WHAT_DO_I_PUT_HERE);
}
});
Run Code Online (Sandbox Code Playgroud)
请注意,我发布的URL不是我控制的URL,因此我对其返回的内容没有任何影响.
更新:当我使用上述警报时,我收到"[object XMLHttpRequest]"和"null".我正在使用Firefox插件监控标题,它们似乎按预期回来了,但我似乎无法通过javascript访问它们(我也尝试过x.getResponseHeader('Location'),但是那个和所有其他对getResponseHeader的调用返回空).
另外:我不知道它是否重要,但状态代码是302(而不是301或303).
谢谢!
小智 5
根据jQuery文档,success方法可以采用第三个参数,即XMLHttpRequest对象.根据Mozilla的XMLHttpRequest页面,该对象应具有"status"属性.如果检查此属性的值,并且它是重定向代码,例如301(永久重定向)或303(临时重定向),则知道处理页面正在尝试执行重定向.应该可以使用"statusText"属性来确定尝试将您重定向到的位置.如果您知道它正在尝试重定向,则可以通过Ajax将数据重新发布到新URL.
但奇怪的是,在研究这个时,偶然发现了这个页面,表明XMLHttpRequest对象应该遵循重定向(参见注释).所以看起来这不是问题.
除非处理页面使用HTML元重定向(如下所示)来执行重定向.在那种情况下,我不确定可以做什么 - 也许尝试解析返回的元标记的HTML,看看是否有任何人正在尝试重定向.
<meta http-equiv="refresh" content="0;url=http://www.example.com/some-redirected-page">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6830 次 |
| 最近记录: |