【问题标题】:ASP.NET MVC 2 - Failed with jquery ajax responseASP.NET MVC 2 - jquery ajax 响应失败
【发布时间】:2011-01-21 23:55:05
【问题描述】:

我不明白这个错误,不要在“JsonResult Test()”中产生错误,我正在做其他项目作为ASP.NET MVC

谢谢

错误:

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.

[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.]
   System.Web.Mvc.JsonResult.ExecuteResult(ControllerContext context) +263733
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult) +10
   System.Web.Mvc.<>c__DisplayClass14.<InvokeActionResultWithFilters>b__11() +20
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation) +251
   System.Web.Mvc.<>c__DisplayClass16.<InvokeActionResultWithFilters>b__13() +19
   System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult) +178
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +314
   System.Web.Mvc.Controller.ExecuteCore() +105
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +39
   System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +7
   System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__4() +34
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
   System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +59
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +44
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +7
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8678910
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

c#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Tesis.Controllers
{
    public class AnalysisSourceDataController : Controller
    {
        //
        // GET: /AnalysisSourceData/

        public ActionResult Index()
        {
            return View();
        }

        public JsonResult Test()
        {
            return Json(new { mymsg = "my msg" });
        }
    }
}

javascript

<script type="text/javascript">
    $(function() {
        $.getJSON("/AnalysisSourceData/Test", function(data) {
            alert(data.mymsg);
        });
    });
</script>

【问题讨论】:

    标签: asp.net-mvc json jquery


    【解决方案1】:

    你不明白什么?这个错误几乎不能更具描述性。这是防止JSON hijacking的安全功能,你可以这样禁用它..

     return Json(new { mymsg = "my msg" }, JsonRequestBehavior.AllowGet);
    

    但你应该了解implications

    【讨论】:

    • 我不明白,其他项目我不需要这个参数。
    • 这是在 MVCv1 项目中随 ASP.NET MVC2 添加的功能,您不需要添加它。添加该功能只会让人们在通过 GET 公开 JSON 数据(有一些完全有效的应用程序)之前停下来思考他们在做什么。
    • 谢谢,我想念文档
    • 绝对不用担心“暴露” json 而不是 get。这是 MVC 团队的一个非常糟糕的选择。这不过是默默无闻的安全,众所周知,这什么都不是。
    • 虽然这篇文章读起来很有趣,但我无法真正评论它有多大的关注度,但是默默无闻不是安全吗,默默无闻在哪里?我不认为这是一个非常糟糕的选择,提高意识,即使是一个小问题也是一个好主意,而且升级问题可以非常容易地解决。
    猜你喜欢
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    • 2018-10-15
    • 2020-01-25
    • 1970-01-01
    相关资源
    最近更新 更多