【发布时间】:2020-05-18 00:00:48
【问题描述】:
我有这个 AJAX 调用:
$.ajax({
type: "post",
dataType: "json",
data: { "json": JSON.stringify(json) },
url: hostUrl,
success: function (data) {
if (data.status) {
window.location.href = data.redirect;
}
else {
alert(data.message);
}
},
error: function (err) {
console.log(err);
}
});
data.redirect 包含 URL,用户应该被重定向到,但不幸的是,它什么也没做。
谁能告诉我是什么问题?
我尝试重定向到其他 ASP 控制器,甚至是 www.google.com,但没有任何效果。
这是 JSON 响应:
{"status":true,"message":"successful authentication","redirect":"/Users"}
我正在使用 ASP.NET Core,我在 Users 控制器中设置了断点,我正在重定向到该控制器。它只被击中一次。在该重定向之后,它停止重定向到该页面。但即使断点被命中,它也不会重定向到返回的视图。
这就像刚刚得到刷新
编辑:
HTML,这似乎很重要:
<form method="post">
Login:
<input name="loginName" type="text" /> <br/>
Password:
<input name="passwordInput" type="password" /><br/>
<button id="authBtn" onclick="handleLogin()" value="Get message"></button>
</form>
【问题讨论】:
-
使用浏览器内置的调试器,在
if (data.status)行设置断点,在console.log(err)行设置另一个断点。然后做任何触发ajax的事情。这些断点之一将被命中并停止代码的执行。如果是if (data.status)上的那个,将鼠标悬停在status上,浏览器会显示它的值。看起来无论那个值是什么,它都是假的(所以它是0,或"",或false,等等)。 -
@T.J.Crowder 我查了,是
true -
可能发生了其他事情,但您发布的代码对我来说适用于您共享的响应(即它重定向到指定的 URL)。
-
@haldo - 不,你没有。相对 URL 将正常扩展。
-
好的,如果是
true,你向前一步,你看到href的分配了吗?被赋予了什么价值?等等等等。我们无法为你解决这个问题,这是一个调试问题。
标签: javascript c# .net ajax asp.net-core