ASP .NET AJAX和JQuery

时间:2009-11-23 21:10:17

标签: asp.net jquery ajax

我正在尝试设置一个简单的JQuery示例,以便对.NET Web服务进行AJAX调用。使用下面的示例我得到的AJAX错误只是在结果中写出0而不是任何有意义的消息:

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">

<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";
        }
    }
}

当我打电话给QSHelloWorld时,我得到一个消息框,上面写着错误:0,没有进一步的信息。

我目前正在使用Windows 7运行此示例,除了.NET Framework 3.5 SP1之外,我是否需要专门安装任何内容才能使其正常运行?

谢谢,

Daven

3 个答案:

答案 0 :(得分:3)

也许this page会帮助你。他们的例子也使用了JSON。

答案 1 :(得分:1)

问题是javascript文件在Chrome中加载文件,但在IE中没有。在ASP .NET Default.aspx文件中进行以下更改后,一切似乎都有效。

更改:

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

<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>

答案 2 :(得分:0)

我在尝试直接在.ASPX页面中加载JQuery时遇到了问题。相反,我有一个ProjectBasePage类,在它的PageLoad中执行此操作:

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

对我有用......