相关疑难解决方法(0)

如何检查jQuery.ajax()请求标头状态是否为"304 Not Modified"?

如何检查jQuery.ajax()请求标头状态是否为"304 Not Modified"?

jqXHR.status通常返回200,即使请求的标题是"304 Not Modified".

ifModified:true 没有太多帮助,因为它破坏了XHR数据请求.

ajax jquery header http-status-code-304

46
推荐指数
1
解决办法
2万
查看次数

捕获javascript XMLHttpRequest的重定向位置

我知道在使用XMLHttpRequest时,你不能拦截重定向或阻止重定向,因为浏览器会透明地跟随它,但它是否可能

A.确定重定向的请求,或

B.确定在那里它重定向到?(假设响应没有给出提示)

示例代码:

$.post("/my-url-that-redirects/", {}, 
    function(response, statusCode, xmlHttpRequest){
        //Somehow grab the location it redirected to
    }
);
Run Code Online (Sandbox Code Playgroud)

在我的情况下,firebug将首先显示对URL的POST,然后对重定向的URL进行GET.可以捕获GET位置吗?

javascript jquery xmlhttprequest

17
推荐指数
1
解决办法
4万
查看次数

当$ .ajax的响应为301时,我可以通过编程方式获取新的URL吗?

当对xhr请求的响应是301时,有没有办法获取最终重定向到的URL?

我的网站包含来自旧版本的大量遗留网址,这些网址会返回301对正确新网址的回复.

出于实用目的,我希望能够向旧URL发出请求,并能够检索新的URL,即发送请求到"/oldpage.aspx?foo=someParam",获取新的URL"/ arbitaryNewPageName/someParam".

我在firebug控制台中一直在玩这个:

    $.ajax({
            url: "/oldpage.aspx?foo=someParam", 
            success: function(response, status, jqxhr){
            //poking around, trying to get the new URL, "/arbitraryNewPage/someParam"
                console.log(jqxhr.getAllResponseHeaders());
                console.log(jqxhr);
            },
            beforeSend: function(jqxhr, settings){
                console.log(jqxhr);
                console.log(settings);
            }
        });
Run Code Online (Sandbox Code Playgroud)

我可以在firebug中看到,当这段代码运行时,它会对"/oldpage.aspx?foo=someParam"执行一次GET,并获得301响应,然后获得另一个GET到"/ arbitaryNewPageName/someParam".

对于第一个请求,我在响应标头的Location值中看到重定向的URL.不幸的是,第二个请求是传递给$ .ajax.success函数的内容,它只在请求头的Referrer值中有重定向的URL.

是否有可能拦截对第一个响应的响应,或者可能会看到第二个请求的请求标头?

编辑:感谢大家的回复.我想我需要提供一些背景来澄清我到底在寻找什么.

业务用户要求我创建一个将旧URL与新URL相关联的列表.由于我已经实现了将旧URL重定向到服务器上的新URL的方法,因此我希望能够减少这项工作,并创建一个脚本,将请求放置到旧URL并获取请求被重定向到的URL.像这样的东西:

for (var i = 0; i < arrayOfLegacyUrls.length; i++)
{
    $.ajax({
            url: arrayOfLegacyUrls[i], 
            success: function(response, status, jqxhr){
                var newUrl = "???"; //do magic to get URL that request was redirected to

                writeToFileForBusinessUser(arrayOfLegacyUrls[i], newUrl);
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

我的问题的关键在于:我可以从XHR获取我的请求被重定向到的URL吗?到目前为止,答案似乎是"不".

javascript jquery xmlhttprequest jqxhr

14
推荐指数
1
解决办法
7039
查看次数