2009-11-23 65 views
4

我正在尝试设置一个简单的JQuery示例,以使AJAX调用.NET Web服务。使用下面的例子下面我理解的只是在结果,而不是任何有意义的消息说0 AJAX错误:ASP .NET AJAX和JQuery

JavaScript调用

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 Web网页

<%@ 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时,我得到一个messa gebox说错误:0没有进一步的信息。

我目前正在使用Windows 7运行这个例子,除了.NET Framework 3.5 SP1之外,我是否需要安装任何特别的东西才能使它正常运行?

感谢,

Daven

回答

3

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

+0

其实这就是我过去曾经是这个例子中的一个页面。 – 2009-11-23 21:16:40

0

我试图直接在.ASPX页面中加载JQuery时遇到了问题。相反,我有一个ProjectBasePage类,在它的pageLoad的做到这一点:

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

它为我...

1

的问题是,JavaScript文件是在浏览器加载文件,但不是在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>