jqueryajax中的Javascript重定向
这是我昨晚问题的延续。我有一个JQuery AJAX响应,如下所示。我只需要将它重定向到另一个视图。请参阅我的代码:jqueryajax中的Javascript重定向,javascript,ajax,asp.net-mvc,asp.net-core,Javascript,Ajax,Asp.net Mvc,Asp.net Core,这是我昨晚问题的延续。我有一个JQuery AJAX响应,如下所示。我只需要将它重定向到另一个视图。请参阅我的代码: $.ajax({ url: "/Home/PersistSelections", type: 'post', contentType: "application/json; charset=utf-8", dataType: 'json', data
$.ajax({
url: "/Home/PersistSelections",
type: 'post',
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: JSON.stringify(selectedItems),
done: function (response) {
window.location.href = "Home/GoToBooking";
}
})
中的代码已完成,但似乎不起作用。我也尝试过成功。我也不确定参数应该是什么(响应还是其他?)
此外,我还看到过这样的代码:
return JavaScript("window.location = 'http://www.google.co.uk'");'
我的控制器中有JavascriptResult
解析,但是当我尝试使用返回Javascript
时,我似乎无法解析引用?我正在使用ASP.NET Core 2.2。尝试替换-
done: function (response) {
window.location.href = "Home/GoToBooking";
}
与-
success: function (response) {
window.location.href = "/Home/GoToBooking";
}
在控制器中而不是JavascriptResult中使用IActionResult 在Js中,您可以这样使用
$.ajax({
url: '//',
type: 'POST',
async: false,
data: { Your data },
success: function (data) {
window.location.href = "/Home/Index";
}
});
首先,您需要确保返回的数据类型是json,因为您在ajax中设置了
dataType:“json”
然后,应按如下方式使用done
方法:
$.ajax({
url: "/Home/PersistSelections",
/....
})
.done(function (response) {
window.location.href = "/Home/GoToBooking";
})
参考:
最后,href应该是/Home/GoToBooking
以下是您可以参考的工作示例:
1.意见:
<button onclick="test()">click</button>
@section Scripts
{
<script>
function test() {
var selectedItems = { Id: 1, Namea: "aaa" };
$.ajax({
url: "/Home/PersistSelections",
type: 'post',
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: JSON.stringify(selectedItems)
})
.done(function (response) {
window.location.href = "/Home/GoToBooking";
})
}
</script>
}
嗯,那不行。我在success call的正文中添加了一个警报,但没有出现。
[HttpPost]
public JsonResult PersistSelections([FromBody]Test test)
{
return new JsonResult(test);
}