我一直试图解决这个问题一段时间了,但是我无法理解它。当用户点击链接时,系统会要求他确认是否要采取此操作。然后进行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。然而,重定向没有发生。
如果尝试用整个网址替换相对路径,但这也不起作用。
答案 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”;