OWASP O2 Platform Blog

Using jQuery to consume an ASP.NET Ashx from JSON in two files

Here is a basic asp.net based JSON based ‘webservice’ which can be implemented with two files and requires no compilation

Javascript code (DataHandler.js):

function CallHandler() {
url: "DataHandler.ashx",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: { 'page': '100AAAAAf00' },
responseType: "json",
success: OnComplete,
error: OnFail
return false;

function OnComplete(result) {
function OnFail(result) {
alert('Request Failed');


Server side code (DataHandler.ashx):

<%@ WebHandler Language="C#" %></pre>

using System.Text;
using System.Web;
using System.Web.Script.Serialization;

public class test
public string var1 {get;set;}
public string var2 {get;set;}
public string page {get;set;}
public test()
var1 = "aaaa";
var2 = "bbb";

public class GetDataHandler : IHttpHandler
public HttpContext context;
public HttpRequest request;
public HttpResponse response;

public void handleRequest()
//writeRaw("this is a message");
writeJson(new test() { page = request["page"] });

public bool IsReusable
get { return false; }

public void ProcessRequest (HttpContext _context)
context = _context;
request = _context.Request;
response = _context.Response;
context.Response.ContentType = "application/json";
context.Response.ContentEncoding = Encoding.UTF8;



public void writeJson(object _object)
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
string jsondata = javaScriptSerializer.Serialize(_object);

public void writeRaw(string text)




based on source code samples from:

July 12, 2011 - Posted by | IE Automation, jQuery

1 Comment »

  1. Nicely done. Thanks a lot.
    I had to add these two lines for the status for Firefox browser to display properly my response (I am using Visual Studio 2010 Entity Framework 4):
    // Put the Header
    Response.Status = “400 Bad Request”;
    Response.StatusCode = 400;

    This might help other people having the same issue.

    Comment by Moise Ndala | March 28, 2012 | Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: