在IIS Express中运行时,这些问题都不存在,只会使用版本IIS,这会成为一个问题。
我有4个Ajax调用来从服务器检索数据,它们都是相同的。其中一人拒绝工作,声称
This request has been blocked because sensitive information could be disclosed to third party web sites when this is used in a GET request. To allow GET requests, set JsonRequestBehavior to AllowGet.
这是不正确的,所有返回数据的函数都返回如下数据:
return Json(clients, JsonRequestBehavior.AllowGet);
Ajax调用所有看起来像这样:
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
url: './Updater/getClientsInfo',
data: {},
success: function (response) {
clientinfo = response;
processUpdate();
}
});
我认为这是一个配置问题,因为它在我今天回来之前工作正常。
编辑:
我在这台计算机上禁用了IIS并重新启用了它,并且在尝试启用Windows功能时遇到了Windows错误,因此这个Windows安装显然发生了一些事情。我首先要排除故障,因为我怀疑代码本身可能不相关。
答案 0 :(得分:1)
如果您通过GET请求执行并设置了错误处理程序来捕获错误但忘记在catch中允许GET请求,那么您也会收到此错误。我刚碰到这个,我有以下
public JsonResult GetCustomer(string id) {
try {
var customerRepository = new CustomerRepository();
return this.Json(new JsonMessage(true, customerRepository.GetCustomer(id)), JsonRequestBehavior.AllowGet);
} catch (Exception ex) {
LogException(ex);
return this.Json(new JsonMessage(false, ex.ToString()));
}
}
问题在于捕获。如果没有以下内容,服务器将阻止发送错误
return this.Json(new JsonMessage(false, ex.ToString()), JsonRequestBehavior.AllowGet);