zoukankan      html  css  js  c++  java
  • ASP.NET MVC2中返回Json异常的解决办法

    ASP.NET MVC2中返回Json异常的解决办法

    在ASP.NET MVC1.0中,我们在前段通常会这样做。

                $.ajax({
                        type: 
    "GET",
                        url: 
    "/role/SaveRoleResource",
                        data: { roleId: roleId, array: item },
                        datatype: 
    'json',
                        success: 
    function (result) {
                            alert(result);
                        },
                        error: 
    function (result1) {
                            alert(result1);
                        }
               });

    或者

     

                     $.getJSON("/role/SaveRoleResource", { roleId: roleId, array: item },
                                                
    function (data) {
                                                    alert(data);
                                                });

    后端我们会做这样的代码:

            public ActionResult SaveRoleResource(int roleId,Array array)
            {
                
    int count = RoleResourceDal.Update(roleId, array);

                
    return Json(count);
            }

    同样的代码如果放到ASP.NET MVC2中,就会报如下异常:

     [InvalidOperationException]: 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.

    解决方法,将后端代码改成如下

            public ActionResult SaveRoleResource(int roleId,Array array)
            {
                
    int count = RoleResourceDal.Update(roleId, array);

                
    return Json(count,JsonRequestBehavior.AllowGet);
            }

    看到这里,可能您就会明白,ASP.NET MVC2中JsonRequestBehavior默认是JsonRequestBehavior.DenyGet。

    错误信息:

    System.InvalidOperationException: 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.

    由错误信息可知MVC2出于对网站数据的保护,默认禁止通过get的请求返回JsonResult数据,你可以在返回Json时,传入第二个参数JsonRequestBehavior.AllowGet。

    如:return Json(result, JsonRequestBehavior.AllowGet)。

    当然你也可以修改你的前端代码,使用post的方式来获取数据。

  • 相关阅读:
    MySQL 锁的监控及处理
    mssql sqlserver 不固定行转列数据(动态列)
    SQL常用增删改查语句--来源于网络
    mssql sqlserver 对不同群组对象进行聚合计算的方法分享
    mssql sqlserver 自动备份存储过程的方法分享
    mssql sqlserver updatetext关键字应用简介说明
    mssql sqlserver 将字段null(空值)值替换为指定值的三种方法分享
    mssql sqlserver with cte表达式(递归)找出最顶值的方法分享
    mssql sqlserver text数据类型专题说明
    mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享
  • 原文地址:https://www.cnblogs.com/fx2008/p/2283105.html
Copyright © 2011-2022 走看看