2011-01-07 54 views
0

异常消息所以,我有我的网页上,是造成一些代码,断开链接。该代码会抛出一个异常,这会导致我的代码跳到我的控制器上的“Catch”块。 catch块如下所示:返回JSON作为一个ActionResult不会让通过

catch (Exception e) 
{ 
    return Json(e.ToString()); 
} 

会发生什么事是,我看到在前端这个错误:

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项目,但我不会得到更具描述性的错误。

这到底是怎么回事,如何解决?需要使用AJAX调用

回答

0

返回JSON的动作。如果您只是在您的页面中指向此操作的链接,因为服务器返回JSON,则浏览器不知道如何处理它。因此,例如,如果你正在使用jQuery你可以使用$.getJSON()方法来调用这个动作:

$(function() { 
    $.getJSON('<%= Url.Action("SomeAction") %>', { }, function(result) { 
     // do something with the result 
     alert(result); 
    }); 
}); 

还有另外两种情况下,我能想到的时候可能会出现你所描述的情景:

  • 你支持Ajax指向这个控制器操作的链接,但你有一个JavaScript错误和浏览器简单地跟随链接发送一个GET请求
  • 你Ajax化的指向这个控制器操作的链接,但你忘了通过返回取消默认动作从您的.click()错误回调和浏览器简单地跟随链接发送一个GET请求
相关问题