3

我遇到了 ajax(和/或 jQuery ajax)和状态 302 的问题。

这就是我正在尝试的:

var xhr = new XMLHttpRequest();
xhr.open("GET", 'some_page_that_I_cant_change.php');
xhr.onreadystatechange = function(){
    console.log(xhr.readyState, xhr.status);
};
xhr.send(null);

some_page_that_I_cant_change.php重定向到.bin带有302代码的。我不想下载这个文件,我只想知道文件的路径。例子:

./some_page_that_I_cant_change.php
./path/to/bin/file.bin << I wan't only this path as string

问题是 Chrome 会自动重定向到该文件,而不告诉我脚本的路径。有解决方法吗?

4

3 回答 3

2

如果您使用 HEAD 请求而不是 GET 请求,我怀疑这会满足您的要求。您应该只看到响应中的标题,没有响应正文(即,不会下载 .bin)。

于 2011-06-09T20:50:18.007 回答
0

有一个关于解决方案和解决方法的主题完全相同的旧线程: How to manage a redirect request after a jQuery Ajax call

于 2011-06-21T10:51:56.540 回答
0

一句话:我不认为你能做到 HTTP 协议的原因。
HTTP 协议([1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ) 规定 302 表示重定向 URI,浏览器跟随。所以,javascript 无法获得重定向响应,只是得到最终答复。

因此,您必须通过响应主体获取路径。

于 2013-11-27T09:18:03.487 回答