【发布时间】:2017-03-25 04:32:13
【问题描述】:
我已经阅读了 JsonRequestBehavior.AllowGet 的 MSDN 文档以及 SO 的许多答案。我尝试过,但我仍然感到困惑。
我有以下操作方法。如果我在我的 ajax 调用中使用 POST 方法,它工作正常。如果我在我的 ajax 调用中使用 GET 方法,它会失败并显示状态 404(找不到资源)。那么,问题是 JsonRequestBehavior.AllowGet 枚举在这个 Json 方法中到底做了什么? MSDN 文档说:允许来自客户端的 AllowGet HTTP GET 请求。 (https://msdn.microsoft.com/en-us/library/system.web.mvc.jsonrequestbehavior(v=vs.118).aspx),但是当我在 ajax 调用中使用 GET 方法时为什么会失败?将属性从 HttpPost 更改为 HttpGet 没有帮助,使用 POST 或 GET 方法都会失败。
[HttpPost]
public JsonResult Create(Model m)
{
m.Ssn = "123-45-8999";
m.FirstName = "Aron";
m.LastName = "Henderson";
m.Id = 1000;
return Json(m, JsonRequestBehavior.AllowGet);
}
public class Model
{
public int Id { get; set; }
public string Ssn { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
这是我的 jQuery ajax 调用:
$(function () {
console.log("hola");
$("button").on("click", function () {
$.ajax({
method: "POST", //Try changing this to GET and see.
url: "Home/Create",
data: { Id: 123, Ssn: "585-78-9981", FirstName: "John", LastName: "Smith" }
})
.done(function (msg) {
alert("Data Saved: " + msg);
});
});
})
【问题讨论】:
标签: asp.net ajax asp.net-mvc