Ajax GET requests to an ASP.NET Page Method?
ajax, asp.net, get, jquery, post
Solution
For security reasons, ASP.Net AJAX page methods only support POST requests.
Problem
A situation I ran across this week: we have a jQuery Ajax call that goes back to the server to get data ``` $.ajax( { type: "POST", contentType: "application/json; charset=utf-8", url: fullMethodPath, data: data, dataType: "json", success: function(response) { successCallback(response); }, error: errorCallback, complete: completeCallback }); ``` `fullMethodPath` is a link to a static method on a page (let's say `/MyPage.aspx/MyMethod`). ``` public partial class MyPage : Page { // snip [WebMethod] public static AjaxData MyMethod(string param1, int param2) { // return some data here } } ``` This works, no problem. A colleague had attempted to replace this call with one where type was "GET". It broke, I had to fix it. Eventually, I went back to POST because we needed the fix quick, but it has been bugging me because semantically a GET is more "correct" in this case. As I understand it, jQuery translates an object in data to a Query String: `/MyPage.aspx/MyMethod?param1=value1¶m2=value2` but all I could get back was the content of the page `MyPage.aspx`. Is that just a "feature" of Page methods, or is there a way of making a GET request work?