jQuery AJAX 请求 302 重定向 - 哪些回调可用?

2023-11-29

我正在使用一个使用 jQuery 1.2.6 的旧系统。我正在通过以下方式发送 AJAX 请求jQuery.ajax功能。它所访问的 URL 正在发送 302 HTTP 重定向响应,并最终以 200 HTTP OK 响应结束。我已经注册了两个success and a complete回调,但是它们都没有被调用。

我的问题是:重定向发生后是否可以/将调用任何回调?

jQuery.ajax({
    type: "GET",
    url: url,
    data: null,
    dataType: "json",
    async: false,
    success: function(data, textStatus) {
        alert("SUCCESS CALLED: " + textStatus);
    },      
    complete: function(xhr, status) {
        alert("COMPLETE CALLED");
    }
});

NOTE:响应是 HTML,而不是 JSON,但是更改dataType to html改变请求。它发送一个OPTIONS请求而不是GET请求,并且它也不再重定向。我需要这些重定向发生。


根据评论:

改变dataType to html改变请求。它发送一个OPTIONS请求而不是GET请求,并且它也不再重定向。

当您发送一个跨域要求。即,url不指向与提供此脚本的域相同的域。这即违反了同源政策。无法访问服务器代码也确认它在不同的域上运行。超文本传输​​协议OPTIONSjQuery 发送的请求应该让服务器返回一个响应Allow标头包含允许在特定 URL 上使用的请求方法列表,以便 jQuery 可以相应地继续。这显然没有发生。

如果服务器确实完全不受您的控制,您需要在服务器上创建一个代理来连接所需的 URL 并将其响应流式传输回来。然后修改 jQueryurl改为指向代理 URL。目前尚不清楚您使用的是什么编程语言,但您的问题历史记录表明您熟悉 Java,在这种情况下,您可以使用一个简单的 servletjava.net.URLConnection or Apache HttpComponents 客户端为了这。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jQuery AJAX 请求 302 重定向 - 哪些回调可用? 的相关文章