Ajax and status 302

北城余情 提交于 2019-12-21 21:34:42

问题


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 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?


回答1:


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




回答2:


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




回答3:


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.



来源:https://stackoverflow.com/questions/6299021/ajax-and-status-302

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!