对于ASP.NET Web API 2服务甚至是独立的MVC系统,由于我处理错误的方式等,我更喜欢在我的控制器中使用JsonResult
函数:
public class BaseController : Controller
{
// This controller is where functionality common to all
// controllers (such as error reporting goes. It's also good for avoiding
// code repetition as in the case of the next function
public JsonResult CreateResponse(object Data)
{
// send a JsonResult with the specified data
return Json(Data, JsonRequestBehavior.AllowGet);
}
}
public class UserController : BaseController
{
public JsonResult Create(CreateUserViewModel Model)
{
try
{
var User = new User
{
Username = Model.Username,
EmailAddress = Model.EmailAddress,
Password = Hashing.CreateHash(Model.Password)
};
db.Users.Add(User);
db.SaveChanges();
return CreateResponse(true);
}
catch (Exception ex)
{
return CreateResponse(ex.Message);
}
}
}
在JsonRequestBehavior上我想要什么样的AllowGet或DenyGet?
任何一门课程的含义或关注点是什么?
答案 0 :(得分:1)
您想要DenyGet
的原因只有两个(可以轻松地进行研究而找到)。
首先,安全
Why are GET requests returning JSON disallowed by default?
其次,浏览器预取
2010年,使用GET可能是一个可以接受的答案。但是今天(2013年),浏览器会预先获取他们认为的网页#34;你将访问下一个。
浏览器当然可以缓存ajax调用,并假设您需要相同的请求,可能会意外地注销用户,或者告诉浏览器脚本,当您没有#时,您已经注销了# 39;吨
答案 1 :(得分:0)
对您的问题进行研究,有时可能会导致JSON劫持。详细信息可以在这里找到 http://haacked.com/archive/2009/06/25/json-hijacking.aspx/