【发布时间】:2014-07-26 22:08:49
【问题描述】:
我正在开发一个内部 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) {.
- 如果我在这里按 F8 以通过
success和error函数的中断,它最终不会命中任何一个断点并重定向到localhost/undefined而不联系服务器。 - 如果我按 F10 单步执行,它将在删除操作中在服务器上的断点处停止。从那里我在visual studio中点击F5,它删除了选定的预期实体,将我返回到浏览器中的断点。如果我从这里按 F8,它将成功并成功弹出警告框。
- 如果我在 Visual Studio 中按 F5 之前在浏览器中按 F8,但它会立即重定向到
localhost/undefined。
问题:有人知道这个问题的根源吗?我搜索了一下,发现了一个与插件非常相似的问题,所以我尝试禁用所有(整个 2),但它没有改变任何东西。
附言如果任何其他代码 sn-ps 会有所帮助,请发表评论,我会添加它们。我已经检查了至少 20 次我的行为。 Delete 是 [HttpPost],但我的 Update 也是如此,它以完全相同的方式运行良好。
【问题讨论】:
-
您应该自己回答问题,然后针对您遇到的任何其他问题提出新问题。这样一来,人们就更容易得到类似问题的帮助。
-
好的,我会这样做的。我想因为它是如此密切相关,所以我只是编辑这个问题,但我想这也有效。
-
没错,尽管人们多次按标题搜索 :)
-
@Shelby115 不要编辑您的问题以包含新问题。如果您有新问题,请使用按钮。
标签: jquery ajax google-chrome redirect