12

我一直在尝试解决这个问题一段时间,但我无法让它工作。当用户单击链接时,系统会要求他确认是否要执行此操作。然后进行 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。然而,重定向并没有发生。

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

4

4 回答 4

20

尝试assign()改用:

window.location.assign(data);

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

于 2013-01-08T11:15:12.757 回答
1

位置assign()方法

The assign() method is supported in all major browsers.
于 2013-01-08T11:19:00.193 回答
0

你可以用这个

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

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

于 2017-04-07T06:10:58.787 回答
-1

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

于 2013-01-08T11:38:29.390 回答