我在内部MVC网站上工作。
问题:
在删除POST之前/之后,网站突然开始在选定的浏览器(Chrome,Opera和Safari)中重定向到localhost/undefined
。这在Firefox或IE中不会发生。
采取的步骤:
我已经在Chrome(不工作)和IE(工作)上多次浏览了以下javascript代码。除了Chrome在代码中未调用的随机重定向之外,似乎没有区别。
Jquery AJAX调用如下:
// Delete button clicked
function deleteEntity(e) {
e.preventDefault();
var name = $(this).attr("name");
var index = $(".deleteEntity[name=" + name + "]").index($(this));
var entityId = ko.utils.unwrapObservable(viewModel.model.peek()[index].ID);
var data = { EntityID: entityId };
viewModel.model.remove(viewModel.model.peek()[index]);
if (entityId > 0) {
$.ajax({
url: "/" + name + "/Delete",
type: "POST",
data: data,
dataType: 'json',
async: true,
success: function (data, textStatus, xhr) {
alert(data);
},
error: function (xhr, textStatus, errorThrown) {
// Decide later.
}
});
}
}
$(document).on("click", ".deleteEntity", deleteEntity);
调试步骤:
从ajax调用行的休息处开始。 - > if (entityId > 0) {
。
success
和error
函数的休息时间,它最终不会触及任何一个断点并在不联系服务器的情况下重定向到localhost/undefined
localhost/undefined
。问题:有谁知道这个问题的根源?我已经google了一下,发现了一个与插件有关的非常类似的问题,所以我尝试禁用所有的(整个2)并且它没有改变任何东西。
P.S。如果任何其他代码片段只对评论有帮助,我会添加它们。我已经检查了至少20次我的行为。 Delete
是[HttpPost]
,但我的Update
也是{{1}},并且它的工作方式也一样。
答案 0 :(得分:0)
我通过从控制器中的删除操作中删除[HttpPost]
属性来解决问题。 (我不得不添加Json返回以允许get,但这只是因为它不再是post请求。)
我很清楚为什么它会导致这样的错误,并且会就此问一个单独的问题。如果找到答案,我会在这篇文章中链接它。