C# AJAX.BeginForm-OnFailure未接收JSON响应

C# AJAX.BeginForm-OnFailure未接收JSON响应,c#,asp.net-mvc,azure,ajax.beginform,C#,Asp.net Mvc,Azure,Ajax.beginform,为什么OnFailure回调在部署到内部公司Azure服务器时没有得到JSON响应?OnSuccess回调总是得到响应,并且响应被正确地转换为JSON对象,可以在我的笔记本电脑和Azure网站上使用,没有问题 问题是OnFailure回调,在我的笔记本电脑上它工作正常,我在XHR中得到一个responseJSON对象,我可以提取并显示错误消息。当我将其部署到Azure web服务器时,OnFailure函数停止接收响应,一切似乎都正常,OnFailure是根据HTTPResponse代码触发的,

为什么OnFailure回调在部署到内部公司Azure服务器时没有得到JSON响应?OnSuccess回调总是得到响应,并且响应被正确地转换为JSON对象,可以在我的笔记本电脑和Azure网站上使用,没有问题

问题是OnFailure回调,在我的笔记本电脑上它工作正常,我在XHR中得到一个responseJSON对象,我可以提取并显示错误消息。当我将其部署到Azure web服务器时,OnFailure函数停止接收响应,一切似乎都正常,OnFailure是根据HTTPResponse代码触发的,任何日志中都没有错误。只是没有从.Net控制器获取JSON对象

我有一个用C#编写的基本MVC web应用程序。一个cshtml页面,将其作为Ajax.BeginForm定义

@using (Ajax.BeginForm("AjaxTest", "Home", null,
    new AjaxOptions
    {
        HttpMethod = "POST",
        OnBegin = "OnBegin",
        OnSuccess = "OnSuccess",
        OnFailure = "OnFailure"
    },
    new { id = "frmAjaxTest" }
    )
)
使用这些函数作为javascript函数

        function OnBegin() {
            console.log("OnBegin:");
        }

        function OnSuccess(response) {
            console.log("OnSuccess:");
        }

        function OnFailure(xhr, status, error) {
            console.log("OnFailure");
        }
和一个控制器,将返回一个好的或坏的响应取决于我点击哪个按钮

    [HttpPost]
    public ActionResult AjaxTest(AjaxTestFields model, string Success, string Failure)
    {
        dynamic jsonMessage = new { 
            returnParm1 = "Parm1",
            errorMessage= "Message"
        };
        if (!String.IsNullOrEmpty(Failure))
        { 
            HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
            return Json(jsonMessage, JsonRequestBehavior.AllowGet);
        }
        else
        {
            HttpContext.Response.StatusCode = (int)HttpStatusCode.OK;
            return Json(jsonMessage, JsonRequestBehavior.AllowGet);
        }
    }

关于Azure为什么会阻止JSON响应发送到OnFailure回调有什么想法吗?

您是否检查了浏览器的错误日志,以了解可能捕获的任何其他错误?在跨域进行AJAX调用时,我在浏览器中看到了跨站点脚本(XSS)错误导致的类似行为。

感谢您的更新,是的,我使用了Chrome的开发者工具,一切看起来都正常。我可以设置一个断点并“观察”响应,XHR的预期JSON部分完全丢失,没有错误。这个问题运气好吗?抱歉,没有。为了使网页正常工作,我停止使用OnFailure作为应用程序错误的陷阱,并将所有内容发送回OnSuccess委托。JSON返回对象有一个名为hasErrors的字段,OnSuccess检查该字段以确定是否需要显示错误消息。