Javascript - jquery ajax post error driving me mad

Posted by Exception Duck on Stack Overflow See other posts from Stack Overflow or by Exception Duck
Published on 2010-06-11T05:19:07Z Indexed on 2010/06/11 5:22 UTC
Read the original article Hit count: 732

Filed under:
|
|
|
|

Can't seem to figure this one out.

I have a web service defined as (c#,.net)

[WebMethod]
        public string SubmitOrder(string sessionid, string lang,int invoiceno,string email,string emailcc)
{
   //do stuff.
   return stuff;

}

Which works fine, when I test it from the autogenerated test thingy in Vstudio.

But when I call it from jquery as

$j.ajax({
        type: "POST",
        url: "/wservice/baby.asmx/SubmitOrder",                     
        data: "{'sessionid' : '"+sessionid+"',"+
              "'lang': '"+usersettings.Currlang+"',"+
              "'invoiceno': '"+invoicenr+"',"+
              "'email':'"+$j(orderids.txtOIEMAIL).val()+"',"+
              "'emailcc':'"+$j(orderids.txtOICC).val()+"'}",
        contenttype: "application/json; charset=utf-8",         
        datatype: "json",
        success: function (msg) {
            submitordercallback(msg);
        },
        error: AjaxFailed
    });     

I get this fun error:

responseText: System.InvalidOperationException: Missing parameter: sessionid. at System.Web.Services.Protocols.ValueCollectionParameterReader.Read(NameValueCollection collection) at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request) at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

data evaluates to: {'sessionid' : 'f61f8da737c046fea5633e7ec1f706dd','lang': 'SE','invoiceno': '11867','email':'[email protected]','emailcc':''}

Ok, fair enough, but this function from jquery communicates fine with another webservice.

Defined:

c#:

[WebMethod]
            public string CheckoutClicked(string sessionid,string lang)
            {
//*snip*

//jquery:

var divCheckoutClicked = function()
{
    $j.ajax({
        type: "POST",
        url: "/wservice/baby.asmx/CheckoutClicked",                     
        data: "{'sessionid': '"+sessionid+"','lang': '"+usersettings.Currlang+"'}",         
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            divCheckoutClickedCallback(msg);
        },
        error: AjaxFailed
    });     
}

© Stack Overflow or respective owner

Related posts about c#

Related posts about jQuery