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.
精彩评论