Jquery Ajax重定向无法正常工作

时间:2012-11-16 16:20:16

标签: jquery ajax redirect

我有几个需要帮助的问题。首先,我希望下面的重定向工作。但是浏览器不会重定向。这是我的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.

1 个答案:

答案 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来发出跨域请求。