我有几个需要帮助的问题。首先,我希望下面的重定向工作。但是浏览器不会重定向。这是我的jsp的全部内容
function testAjax(){
alert("In test Ajax");
$.ajax({
type: "GET",
url: "http://xyz.com/",
data: "param1=value1" +
"&target=http://abc.com"
,
success: function(data, textStatus, xhr) {
alert("Success ");
window.location.href = "http://abc.com";
},
error: function(data) {
alert("Success");
},
async: false
});
}
参数target基本上是xyz.com,因此当该服务器进行重定向时,它会重定向到目标中的任何内容。但是,当我调用此javascript(通过点击jsp)时,浏览器不会重定向。我尝试使用开发人员工具在Firefox上进行调试,我看到对xyz的GET请求,它返回带有位置标题的302.
答案 0 :(得分:0)
你确定你得到了一个成功的回复 - 如果你看到一个警告说“成功”,你可能实际上没有好,因为你有成功和错误:
success: function(data, textStatus, xhr) {
alert("Success ");
window.location.href = "http://example.com";
},
error: function(data) {
alert("Success");
},
我推荐的更像是:
error: function(jqXHR, textStatus, errorThrown) {
alert("Fail " + textStatus + " - " + errorThrown);
},
这可能会指向正确的方向,因为如果您取得了真正的成功,我确定位置会发生变化。
我对错误的猜测是你试图对另一个域进行AJAX调用,这将被浏览器安全性阻止。您需要使用JSONP或CORS来发出跨域请求。