Joh*_*ohn 5 jquery redirect jquery-callback
我正在使用一个使用 jQuery 1.2.6 的旧系统。我正在通过该函数发送 AJAX 请求jQuery.ajax
。它所访问的 URL 正在发送 302 HTTP 重定向响应,并最终以 200 HTTP OK 响应结束。我已经注册了 asuccess
和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");
}
});
Run Code Online (Sandbox Code Playgroud)
注意:响应是 HTML,而不是 JSON,但是更改dataType
会html
改变请求。它发送OPTIONS
请求而不是GET
请求,并且也不再重定向。我需要这些重定向发生。
根据评论:
更改
dataType
来html
改变请求。它发送OPTIONS
请求而不是GET
请求,并且也不再重定向。
当您发送跨域请求时,就会发生这种情况。即,url
不指向与提供此脚本的域相同的域。这即违反了同源策略。无法访问服务器代码也确认它在不同的域上运行。jQuery 发送的HTTPOPTIONS
请求应该让服务器返回一个带有Allow
标头的响应,其中包含允许在特定 URL 上使用的请求方法列表,以便 jQuery 可以相应地继续。这显然没有发生。
如果服务器确实完全不受您的控制,您需要在服务器上创建一个代理来连接所需的 URL 并将其响应流式传输回来。然后更改 jQueryurl
以指向代理 URL。目前尚不清楚您使用的是什么编程语言,但您的问题历史记录表明您熟悉 Java,在这种情况下,您可以使用简单的 servlet 或java.net.URLConnection
Apache HttpComponents Client来实现此目的。
归档时间: |
|
查看次数: |
10723 次 |
最近记录: |