IIS允许3/4个相同的Ajax调用

时间:2015-12-08 15:10:20

标签: asp.net ajax iis

在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安装显然发生了一些事情。我首先要排除故障,因为我怀疑代码本身可能不相关。

1 个答案:

答案 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);