我在登录页面上执行以下Ajax调用的asp.net mvc5应用程序
$(document).ready(function () {
var formObj = $(".login-form");
$("form input[name=username]").val("user");
$("form input[name=password]").val("password1!");
formObj.submit(function (event) {
event.preventDefault();
console.log("test");
validator = formObj.validate();
if (validator.checkForm()) {
var form = formObj.get();
var rememberMe = $("input:checkbox[name=remember]:checked").val() ? true : false;
$(form.rememberMe).val(rememberMe);
args = {
form: form,
userName: $(form.username).val(),
password: $(form.password).val(),
remember: rememberMe
}
var url = @Url.Content("~/api/auth");
func = $.ajax({
url: url,
data: args,
success: function (data) {
console.log("success")
if (data["ResponseStatus"]["ErrorCode"] == null) {
@if(Request.Params.Get("redirect") != null) {
<text>
window.location = "@Request.Params.Get("redirect")";
</text>
}
else
{
<text>
window.location = "@Url.Content("~/Home")";
</text>
}
}
}
});
}
});
});
如果我把这段代码
var url = @Url.Content("~/api/auth");
它可以工作,否则如果我引用url字符串(因为它应该是正确的)
var url = "@Url.Content("~/api/auth")";
它挂起了浏览器。
这只发生在chrome下,因为Chrome版本43.0.2357.65 m报告了第一个iussue
有什么问题?
由于
我注意到问题就在那里
$.ajax({
url: "/someurl",
data: args,
success: function (data) {
console.log("success")
if (data["ResponseStatus"]["ErrorCode"] == null) {
window.location = "/someotherurl/";
}
}
});
如果我起诉ajax它就会破坏......如果我使用$ .post或$ .get它就有效......