0

我这里有一个奇怪的。我正在对我的操作方法进行 ajax 回调,这是一个非常简单的调用,并且我总是在操作方法中传回一个 JSON 对象。但是,当我构建了我的应用程序并在本地运行它时,第一次发出 ajax 请求时,就会执行错误回调。在请求返回任何内容之前触发此回调,我可以在操作方法中放置一个断点,断点被击中,我将其暂停但会触发错误。在下一个 ajax 请求中,一切正常,断点被击中,直到我继续并返回成功之前什么都没有发生。

首次选择时的错误详细信息是

xhr = Object {readyState: 0, responseJSON: undefined, status: 0, statusText: "error"}, ajaxOptions = "error", thrownerror = ""

我的ajax调用如下

jquery.ajax({
    url: "ReportSetting/SaveSetting",
    data: {
        reportSettings: this.ReportSettings
    },
    cache: false,
    type: "POST",
    dataType: "json",
    success: function(partialViewData) {
        alert("Settings saved");
        return true;
    },
    error: function(xhr, ajaxOptions, thrownError) {
        alert("ERROR SAVING SETTINGS");
        return false;
    }
});

这是我的操作方法

    [Authorize]
    [HttpPost]
    public IActionResult SaveSetting(int companyId, IList<ReportSetting> reportSettings)
    {
        _reportSettingsService.SaveSettings(companyId, reportSettings);

        return Json(reportSettings);
    }

和按钮的剃刀视图

<a type="submit" class="btn btn-success" type="button" data-bind="click: SaveButtonClicked" asp-controller="ReportSetting" asp-action="Index">Save</a>

这发生在 Chrome 上。在 IE 上不会出现警报,但操作方法会运行。我正在运行.net5。有什么建议吗?

谢谢

4

1 回答 1

0

现在已经解决了这个问题。我的处理程序返回 true,所以我认为锚标记正在重新加载,因为请求被触发,所以请求陷入混乱。我现在已将其更改为返回 false 并在成功处理程序中刷新页面

于 2016-07-22T09:01:59.427 回答