Thanigainathan Siranjeevi

Sharing my learning

  Home  |   Contact  |   Syndication    |   Login
  31 Posts | 0 Stories | 65 Comments | 0 Trackbacks

News

Twitter












Archives

ASP.Net

EntityFramework

Linq

Microsoft Free Ebook

Silverlight

Today I was trying to call ASP.Net web service from JQuery. I thought it was easy first. But when tried implementing them I felt the difficulty. I don't had this problem while calling Ajax enabled WCF service from JQuery. Hence I did a small Bing and found out some useful tips to share. I referred links below.

The above links are very helpful. In addition to that you may need the following prerequisites.

  1. Visual Studio 2008
  2. Jquery 1.3.2
  3. Jquery-1.3.2-vsdoc.js

I will list the steps I have followed. Create a New ASP.net application and name as you want. In my case I named it AjaxDemo.

Once the project is created you can copy the Jquery 1.3.2 and Jquery-1.3.2-vsdoc file into the project folder. Add a new WebService named WebService1.asmx.

 

Now import two namespaces for enabling the WebService to be accessed from JavaScript.

using System.Web.Script.Serialization;

using System.Web.Script.Services;

The class Webservice1 has to be marked as ScriptService .This is very important.

[System.Web.Script.Services.ScriptService]

public class WebService1 : System.Web.Services.WebService

{

Next the method needs to be marked as WebMethod as usual and ScriptMethod for enabling client access.

[WebMethod]

[ScriptMethod(UseHttpGet = false, ResponseFormat = ResponseFormat.Json)]

public string HelloWorld()

{

 

Since I am using the JSON as the data type I am marking the Response format as JSON. The data that has to be sent from server has to be serialized as JSON. I have give a sample below.

JavaScriptSerializer js = new JavaScriptSerializer();// Use this when formatting the data as JSON

return js.Serialize("Hello World");

That's all needed on server side. Next we will look at JQUERY client invokation.

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

<title></title>

 

<script src="jquery-1.3.2.js" type="text/javascript"></script>

<script language="javascript" type="text/javascript">

$.ajax({ type: "GET",

contenttype: "application/json; charset=utf-8",

data: "{null}",

url: "WebService1.asmx/HelloWorld",

dataTyp:"json",

success: function(res) {

$("#Text1").val(res.text);

},

error: function(err) {

alert(err);

}

});

</script>

</head>

<body>

<form id="myForm">

<input id="Text1" type="text" />

</form>

</body>

</html>

As you can see from above $.ajax is used to call the WebService. The data send should be as "{null}". This is very important otherwise it wont work.

Here I have assigned the result to only a text box. The same scenario can be applied for complex situations. I will discuss about the complex things later.

Thanks.

 

 

posted on Friday, October 30, 2009 8:37 AM

Feedback

# re: Calling asp.net webservice from JQuery 11/3/2009 7:03 AM WebDesignExpert.Me
Thanks for the enlightening piece about how to call asp.net web service using client-side jquery!

# re: Calling asp.net webservice from JQuery 11/10/2009 1:02 PM Thorsteinsson
You should rather use the js proxy for the webservice. I blogged about it at http://thorsteinsson.is/projects/jquery-webservices/

# re: Calling asp.net webservice from JQuery 1/4/2010 12:16 AM ranacseruet
Nice tutorial, thanks for saring. I have also written one, but covered only jquery client part, in details..

Post A Comment
Title:
Name:
Email:
Website:
Comment:
Verification: