从控制器检索数据并返回 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 调用成功数据区域。
请注意,我将从数据库中输入值,但为了测试,我为SystemID
和Reason
输入了硬编码值。当我运行代码时,它会进入错误:函数部分,我得到一个解析器错误。我想知道我是否做错了什么。
[HttpGet]
public ActionResult EditLog(int maintId)
return Json(new SystemID = 1233, Reason = "ReagDegree change" );
【问题讨论】:
您传递给ajax
的data:
的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 调用失败的主要内容,如果未能解决你的问题,请参考以下文章
如何从 ASP.NET MVC 控制器返回 Ajax“失败”?
Codeigniter- Ajax Codeigniter Ajax - 通过ajax返回不止一行