随机重定向到/未定义
我正在开发一个内部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调用线的rest处开始。 – > if (entityId > 0) {
。
- 如果我在这里点击F8以通过我在
success
和error
函数的中断,它最终没有击中任何一个断点并重新定向到localhost/undefined
而不联系服务器。 - 如果我按F10单步执行,它将在删除操作中停在服务器上的断点处。 从那里我在视觉工作室中点击F5并删除所选的预期实体,将我返回到broswer中的断点。 如果我从这里点击F8,它将成功并弹出警报框成功。
- 如果我在视觉工作室中击中F5之前在broswer中按F8,但它会立即重定向到
localhost/undefined
。
问:有谁知道这个问题的根源? 我已经google了一下,发现了一个与插件有关的非常类似的问题,所以我尝试禁用所有的(整个2)并且它没有改变任何东西。
ps如果任何其他代码片段将有用只是评论,我会添加它们。 我已经检查过我的动作至少20次了。 Delete
是一个[HttpPost]
但我的Update
也是如此,它以同样的方式工作正常。
我通过从控制器中的Delete操作中删除[HttpPost]
属性来解决问题。 (我不得不添加Json返回以允许get,但这只是因为它不再是post请求)。
我很清楚为什么会导致这样的错误,并且会就此问一个单独的问题。 如果找到答案,我会在这篇文章中将其链接到此处。