【问题标题】:Random redirect to /Undefined随机重定向到 /Undefined
【发布时间】: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 以通过 successerror 函数的中断,它最终不会命中任何一个断点并重定向到 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


【解决方案1】:

我通过从控制器中的 Delete 操作中删除 [HttpPost] 属性解决了这个问题。 (我必须添加 Json 返回以允许获取,但这只是因为它不再是一个发布请求)。

我不知道它为什么会导致这样的错误,并将就此提出一个单独的问题。如果找到答案,我会在这篇文章中链接它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 2017-05-21
    • 1970-01-01
    • 2019-02-18
    • 2019-05-12
    相关资源
    最近更新 更多