3

Making my first steps in trying to use all these technologies together.. I'm having some toubles..
Here is my Server side:

[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string simplestMethod()
{
  return "Simplest method returned";
}

And here is my client side:

 $(document).ready(function(){
   $("a").click(function(event){     
      $.ajax({
      type: "POST",
      url: "http://localhost:53346/d2/TAPI.asmx/simplestMethod",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function (data) {
       alert(data.d);
      },
      error: function (XMLHttpRequest, textStatus, errorThrown) {
       alert("Error Occured!" +" | " + XMLHttpRequest +" | " + textStatus +" | " + 
       errorThrown );
      }
   });
  });
 });

The result is an alert that says:
Error Occured! | [object XMLHttpRequest] | parseerror | undefined.
What parsing failed and why?
I should mention that calling the WS method directly does work.
Thanks a lot!

1
  • What's the URL of the page? If it's running from a different host and/or port you won't get a response, as it'll be blocked by the same origin policy. Commented Sep 6, 2010 at 10:05

2 Answers 2

4

Your code looks like good with one suspected place: url. You should replace url to something like "TAPI.asmx/simplestMethod" or "/d2/TAPI.asmx/simplestMethod".

Moreover if you want study to how to call web method with parameters or return more complex data from the web method look at How do I build a JSON object to send to an AJAX WebService? and asmx web service, json, javascript/jquery?, Can I return JSON from an .asmx Web Service if the ContentType is not JSON?. How to decode error messages from the exception inside of web method see Get xhr object in vb.net while ajax calling fails.

Sign up to request clarification or add additional context in comments.

6 Comments

No luck. changing the URL gives the same error, and when I change the error and success functions, I just get an alert that says "error". But thanks!
@Oren A: You have textStatus=**parseerror**. So you should first of all show xhr.responseText with alert(xhr.responseText);
@Oren A: By the way I tested your code. If work without any problem. So your real error is somewhere outside the code which you posted in your question.
I've been reading.. Could it be that I should add something to the web.config? (I'm using .NET 4.0) What other places in the code are relevant? Thanks.
@Oren A: To make you easy to compare your solution with one working I created a simple application in .NET 4.0 (Visual Studio 2010) which do the same what you describe in your question. You can download full code from ok-soft-gmbh.com/ForStackOverflow/SimpleWebService.zip
|
2

when you want use WebMethod in jquery , you must add this tag to web.config

<configuration>
  <system.web>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </httpModules>
  </system.web>
</configuration>

good luck

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.