获取jQuery post重定向响应

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)