window.location.href对ajax的成功无效

时间:2013-01-08 11:14:14

标签: javascript jquery ajax

我一直试图解决这个问题一段时间了,但是我无法理解它。当用户点击链接时,系统会要求他确认是否要采取此操作。然后进行ajax调用。被调用的脚本工作正常,并返回一个字符串重定向到的位置。

我在这里看到了几个关于window.location问题的帖子,但是没有一个可以解决我的问题。

我的代码:

function confirm(a,b,c){
        var r=confirm("Are you sure to do this?");
        if(r==true){
            $.ajax({
                type: "POST",
                url: "/process-action.php",
                async: false,
                data: {a:a,b:b,c:c},
                success: function(data){
                    window.location.href = data;
                }
            });
        } else {
            return false;
        }
    }

如果我执行alert(data)而不是window.location.href = data,我可以看到传递了正确的数据。例如/ user / homepage。然而,重定向没有发生。

如果尝试用整个网址替换相对路径,但这也不起作用。

4 个答案:

答案 0 :(得分:18)

请尝试使用assign()

window.location.assign(data);

window.location.href是属性,而不是方法。

答案 1 :(得分:1)

位置assign()方法

The assign() method is supported in all major browsers.

答案 2 :(得分:0)

您可以使用此

<form action="submit.php" onsubmit="return false;" method="post">

并且您的相同脚本将起作用。

答案 3 :(得分:-1)

您也可以使用window.location =“someurl”;