views:

79

answers:

3

I'm trying to set up a simple JQuery example in order to make AJAX calls to a .NET webservice. Using the following example below I'm getting AJAX errors that are just saying 0 in the result instead of any meaningful message:

Javascript Call

function QSHelloWorld() {
    var options = {
        type: "POST",
        url: "http://localhost:1087/QueryService.asmx/HelloWorld",
        data: "{}",
        contentType: "application/json",
        dataType: "json",
        success: AjaxSucceeded,  
        error: AjaxFailed
    };

    $.ajax(options);    
}

function AjaxSucceeded(result) {  
    alert(result.d);  
}  

function AjaxFailed(result) {  
    alert("Error: " + result.status +  " " + result.statusText);  
}

ASP .NET WebSite

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="jQueryTest._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

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

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
</head>
<body>
    <form id="formMain" runat="server">
    <div>
        <script type="text/javascript">
            QSHelloWorld();
        </script> 
    </div>
    </form>
</body>
</html>

ASP .NET WebService

using System.Web.Script.Services;
using System.Web.Services;

namespace QueryService
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ScriptService]
    public class QueryService : WebService
    {
        [WebMethod]
        [ScriptMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }
}

When I make a call to the QSHelloWorld I get a messagebox saying Error: 0 with no further information.

I'm currently running this example using Windows 7, do I need to have anything specifically installed besides the .NET Framework 3.5 SP1 in order to get this to run properly?

Thanks,

Daven

+3  A: 

Maybe this page will help you out. Their example uses JSON as well.

vladikoff
Actually that's one of the pages I used to put together this example.
Daven Patel
A: 

I've had problems when trying to load JQuery directly in the .ASPX page. Instead I have a ProjectBasePage class that in it's PageLoad does this:

   Page.ClientScript.RegisterClientScriptInclude(typeof(ProjectBasePage),
           "jQuery", ResolveUrl("~/js/jquery-1.3.2.min.js"));

It works for me...

John Earles
+1  A: 

The issue is that the javascript files were loading file in Chrome, but not in IE. After making the following change in the ASP .NET Default.aspx file, everything seemed to work.

Changing:

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

to

<script type="text/javascript" language="javascript" src="/js/jquery-1.3.2-vsdoc2.js"></script>
<script type="text/javascript" language="javascript" src="/js/qsAJAX.js"/></script>
Daven Patel