开发者

Ajax and status 302

I'm having a problem with ajax (and/or jQuery ajax) and status 302.

This is what I am trying:

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);

The some_page_that_I_cant_change.php redirects to a .bin with 302 code. I do not want to download this开发者_Go百科 file, I just want know the path to the file. Example:

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

The problem is that Chrome automatically redirects to the file, without telling me the path to script. Is there a workaround for this?


If you use a HEAD request instead of a GET request, I suspect that will do what you want. You should only see headers in the response, no response body (i.e., no .bin will download).


There's an older thread about exactly the same topic with solutions and work arounds: How to manage a redirect request after a jQuery Ajax call


In a word: I don't think you can do that cause of HTTP protocol.
HTTP protocol([1]:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) stipulate 302 means redirect URI, and browsers follows.So,the javascript can't get the redirect response, just get final response.

So,You have to get path by response body.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜