First, when you debug, can you verify that this filter is being called and it hits this line?
filterContext.Result = new JsonResult { Data= new { errorMessage="Access Blocked!!."} };
If so, you can use Firebug to inspect the reason for the 500 error. It's possible that it is related to the fact that GET requests are blocked for JsonResults by default.
Can you change the JsonResult line to:
filterContext.Result = new JsonResult { Data= new { errorMessage="Access Blocked!!.", JsonRequestBehavior = JsonRequestBehavior.AllowGet} };