Search code examples
c#jqueryasp.netajaxwebmethod

Error with my Ajax post with jQuery


I am trying to post to a method using jQuery and Ajax. My Ajax code is as follows:

 var isMale = $(e.currentTarget).index() == 0 ? true : false;

 $.ajax({
      type: "POST",
      url: "Default.aspx/SetUpSession",
      data: { isMale: isMale },
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function() {
         // Go to next question
      }
 });

And here is my WebMethod:

[WebMethod]
public static void SetUpSession(bool isMale)
{
    // Do stuff
}

I get a 500 (Internal Server Error) looking at the console, the method never get's hit. After I changed data to "{}" and removed the bool from the method signature the method then gets hit, so I'm assuming its something to do with the Ajax.data attribute I'm trying to pass.


Solution

  • Two things you need to modify :-

    1) Make sure that this line is written in your web service page and should be uncommented.

    [System.Web.Script.Services.ScriptService]

    2) Modify the "data" in the code as :-

    $.ajax({
          type: "POST",
          url: "Default.aspx/SetUpSession",
          data: '{ isMale:"' + isMale + '"}',
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function() {
             // Go to next question
          }
     });