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的方式来获取数据。

  • 相关阅读:
    第8月第15天 app支持后台播放
    第8月第12天 python json.dumps danmu
    第7月第27天 c++11 boost
    第7月第26天 iOS httpserver
    第7月第25天 xcode bundle calayer动画
    我曾七次鄙视自己的灵魂
    learning shell display alert function(5)
    learning armbian steps(6) ----- armbian 源码分析(一)
    learning scala 数组和容器
    learning scala ide tools install
  • 原文地址:https://www.cnblogs.com/fx2008/p/2283105.html
Copyright © 2011-2022 走看看