为什么 Ajax http get 不检索 json?

Why the Ajax http get doesn't retrive json?

我需要通过 Ajax 调用从我的 MVC 控制器中检索 JSON 或 HTML。 问题是为什么以下不适用于 GET 请求?

$.ajax({
    url: url,
    type: "POST", //It works but doesn't work with GET 
    success: function (data) {
        ...
    }
});

public ActionResult Index()
{
       if (User.Identity.IsAuthenticated)
       {
              ...
              return View(selectedUser);
        }
        return Json(new { Error = Messages.AUTHENTICATIONEXPIRED });
}

使用 HTTP GET 它什么也得不到,而是 Json 对象。 Action 方法执行成功。 有我不知道的技术原因吗?有没有另一种方法可以在不进行 POST 调用的情况下使其工作? 谢谢

通过GET返回Json时,必须加上JsonRequestBehavior.AllowGet

return Json(new { Error = Messages.AUTHENTICATIONEXPIRED }, JsonRequestBehavior.AllowGet);

更多信息there