从控制器检索数据并返回 ajax 调用失败

Posted

技术标签:

【中文标题】从控制器检索数据并返回 ajax 调用失败【英文标题】:Retrieve data from controller and return to ajax call failing 【发布时间】:2019-12-16 10:32:37 【问题描述】:

我认为有以下 ajax 调用:

var obj =  maintId: id ;

$.ajax(
    url:  '@Url.Action("EditLog" ,"Maintenance")',
    type: "GET",
    dataType: "json",
    data: obj,
    async: false,
    success: function (data) 
    alert(data.Reason); 
,
error: function (xhr, status, error) 
        alert(xhr.responseText);
        alert(status);
        alert(error);
    
);

它很好地点击了 Action (EditLog),但无法将 SystemID 和 Reason 的值返回到 ajax 调用成功数据区域。

请注意,我将从数据库中输入值,但为了测试,我为SystemIDReason 输入了硬编码值。当我运行代码时,它会进入错误:函数部分,我得到一个解析器错误。我想知道我是否做错了什么。

[HttpGet]
public ActionResult EditLog(int maintId)
        
    return Json(new  SystemID = 1233, Reason = "ReagDegree change" );     

【问题讨论】:

您传递给ajaxdata:obj 的值是多少?另外,你为什么用async:false jQuery getJSON with .NET MVC not working的可能重复 【参考方案1】:

您还需要使用JsonRequestBehavior.AllowGet

return Json(new  SystemID = 1233, Reason = "ReagDegree change" , JsonRequestBehavior.AllowGet);

JsonRequestBehavior 枚举:

指定是否允许来自客户端的 HTTP GET 请求。

默认设置为Deny get

https://docs.microsoft.com/en-us/dotnet/api/system.web.mvc.jsonrequestbehavior?view=aspnet-mvc-5.2

【讨论】:

以上是关于从控制器检索数据并返回 ajax 调用失败的主要内容,如果未能解决你的问题,请参考以下文章

如何调用ajax从数据库中检索数据

如何从 ASP.NET MVC 控制器返回 Ajax“失败”?

Codeigniter- Ajax Codeigniter Ajax - 通过ajax返回不止一行

在Controller中使用Jquery ajax调用ActionResult方法并返回数据

MVC 控制器返回内容与返回 Json Ajax

从通过 jQuery AJAX 调用的控制器返回 PDF