views:

52

answers:

1

Why would POST work but not GET? I'm not using [AcceptVerbs(HttpVerbs.Post)]. I'm calling this:

public ActionResult GetTest(string key)
        {
            var test = new { HelpTest = key };
            return Json(test);
        }

And it works when I do this:

$.post("/Home/GetTest", { key: options.key },
                        function(helpTest) {
                            alert(helpTest.HelpTest);
                        });  

But not this:

$.get("/Home/GetTest", { key: options.key },
                            function(helpTest) {
                                alert(helpTest.HelpTest);
                            });  

Why would this be? Using GET returns an XMLHttpRequest.status of 500. What am I confused about?

+3  A: 

that is because return json does not return json to get requests it is unsafe and you should avoid it but if you really want to use it use the overload of json set the property to allowget then it will work

return Json(data, JsonRequestBehavior.AllowGet);  
Chino
Thanks - what are the concerns w/ returning JSON to a GET request?
iboeno
It is open to hacker attacks look at this video if you are interested in learning more about security http://live.visitmix.com/MIX10/Sessions/FT05
Chino