我正在尝试设置一个简单的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
答案 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"));
对我有用......