将JsonRequestBehavior设置为AllowGet时,可以披露什么“敏感信息”
当我returning Json (使用内置的MVC JsonResult helper )时,每次从浏览器的地址栏中testing一个新的URL ,我都得到了相同的旧错误: 
此请求已被阻止,因为在
GET request使用此信息时,敏感信息可能会泄露给第三方网站。 要允许GET requests,请将JsonRequestBehavior设置为AllowGet。
 而不是咕噜在承认和火焰小提琴做一个职位请求,这一次,我想知道到底什么是一个GET请求公开POST请求不? 
 说你的网站有一个GetUser网页方法: 
 http://www.example.com/User/GetUser/32 
它返回一个JSON响应:
 { "Name": "John Doe" } 
 如果此方法仅接受POST请求,则只有在使用POST方法向http://www.example.com/User/GetUser/32发出AJAX请求时,内容才会返回给浏览器。 请注意,除非您已经实施CORS ,否则浏览器将保护向其他域发送此请求的数据。 
 但是,如果您允许GET请求,并且使用GET(而不是POST)发出类似于上面的AJAX请求,则恶意用户可以使用HTML中的script标记将您的JSON包含在自己站点的上下文中。 例如在www.evil.com : 
 <script src="http://www.example.com/User/GetUser/32"></script> 
 这个JavaScript应该对www.evil.com毫无用处,因为不应该读取web方法返回的对象。 但是,由于旧版浏览器(例如Firefox 3)中的错误,可能会重新定义JavaScript原型对象,并使www.evil.com能够读取您的方法返回的数据。 这就是所谓的JSON劫持。 
看到这个职位的一些方法来防止这一点。 但是,现代浏览器的更高版本(Firefox,Chrome,IE)并不是已知的问题。
在你的回报中使用以下内容:
 return this.Json("you result", JsonRequestBehavior.AllowGet); 
默认情况下,ASP.NET MVC框架不允许您使用JSON负载来响应HTTP GET请求。 如果您需要发送JSON以响应GET,则需要使用
JsonRequestBehavior.AllowGet作为Json方法的第二个参数来显式允许该行为。 但是,恶意用户有机会通过称为JSON劫持的过程访问JSON有效负载。 您不希望在GET请求中使用JSON返回敏感信息。
 阅读从Phil Haack JSON Hijacking 
当我们想从MVC应用程序返回一个json对象给客户端时,我们应该在返回一个对象的时候明确指定JsonRequestBehavior.AllowGet。 结果,我返回json数据如下,以解决这个问题:
  return Json(yourObjectData, JsonRequestBehavior.AllowGet);