随机重定向到/未定义

时间:2014-06-05 19:06:32

标签: jquery ajax google-chrome redirect

我在内部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以通过successerror函数的休息时间,它最终不会触及任何一个断点并在不联系服务器的情况下重定向到localhost/undefined
  • 如果我按F10单步执行,它将在删除操作中停在服务器上的断点处。从那里我在视觉工作室中点击F5并删除所选的预期实体,将我返回到broswer中的断点。如果我从这里点击F8它会成功并弹出警报框成功。
  • 如果我在视觉工作室中点击F5之前在broswer中点击了F8,但它会立即重定向到localhost/undefined

问题:有谁知道这个问题的根源?我已经google了一下,发现了一个与插件有关的非常类似的问题,所以我尝试禁用所有的(整个2)并且它没有改变任何东西。

P.S。如果任何其他代码片段只对评论有帮助,我会添加它们。我已经检查了至少20次我的行为。 Delete[HttpPost],但我的Update也是{{1}},并且它的工作方式也一样。

1 个答案:

答案 0 :(得分:0)

我通过从控制器中的删除操作中删除[HttpPost]属性来解决问题。 (我不得不添加Json返回以允许get,但这只是因为它不再是post请求。)

我很清楚为什么它会导致这样的错误,并且会就此问一个单独的问题。如果找到答案,我会在这篇文章中链接它。