views:

29

answers:

1

Hi,

this must be a newbie question.

I have this method in a controller:

public JsonResult GetUpdates(string lastChatMessage)
{
   var json = Json(new {lastModeratorAction = -1});
   return json;
}

I am calling it with $.ajax or $.getJSON from Javascript. The method gets called but there is an exception somewhere. If I use $.ajax I define an "error" callback and it tells me that the status of the XmlHttpRequest is "error". The error message is "undefined".

If I return "null" from the above method it works fine. Probably there is an exception during JSON serialization. Any hints?

+2  A: 

If you are using a GET to send the request, you need to indicate that it's acceptable to return a JsonResult.

 return Json( new { lastModeratorAction = -1 }, JsonRequestBehavior.AllowGet );
tvanfosson
Wow, thanks a lot! I've seen many examples but none featured the AllowGet thing. Now it works like a charm.
Sparhawk
@sparhawk - this was added in MVC2 due to the possibility for hijacking a json response to a GET request by overriding the object prototype's `__defineSetter__` method. See Phil Haack's article: http://haacked.com/archive/2009/06/25/json-hijacking.aspx
tvanfosson