0

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

4

1 回答 1

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

于 2012-11-16T16:29:18.543 回答