5

我想使用Location带有 jQ​​uery 1.7 的标头重定向到目标。

我的代码看起来像这样

$('#creationLink').click(function(){
  $.ajax({
    type: 'POST',
    url: '/',
    success: function(data, textStatus, xhr) {
      window.location = xhr.getResponseHeader("Location");
    }
  })
});

...但它不起作用。xhr.getResponseHeader("Location")一片空白。

HTTP 标头:

POST / HTTP/1.1
Host: localhost:9000
X-Requested-With: XMLHttpRequest
Content-Length: 0

HTTP/1.1 302 Found
Content-Type: text/plain; charset=utf-8
Location: http://localhost:9000/vIRdD0PdWp4/bearbeiten
Content-Length: 0

如何使用位置标头重定向?

4

1 回答 1

16

AFAIK,浏览器应该在 XHR 期间透明地遵循响应标头中的重定向。也就是说,XHR 实际上会查看响应,查看 Location 标头,然后神奇地运行该 URI 的第二个请求。只有当它有那个结果时,才会给你任何东西,它给你的是第二个请求的结果。

看到 这个stackoverflow答案

因此,如果您需要重定向功能,则必须使您请求的内容以其他方式返回目标 URI,例如作为 JSON 响应。

此 stackoverflow 解决方案

PS。参考:http ://www.w3.org/TR/XMLHttpRequest/#infrastructure-for-the-send-method

于 2012-06-04T20:16:47.930 回答