0

在我的母版页中,我有

<head>
<script type="text/javascript">
$(document).ready(function() {
$("#result").click(function() {
$.ajax({type: "POST",url: "ws.aspx/HelloWorld",data: "{}",contentType: "application/json; charset=utf-8",dataType: "json",success: function(msg) {
$("#result").text(msg.d);
}
});
});
</script>
</head>
<body>
<form>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" />
<div name="result" id="result">long clicky text</div>
</form>
</body>

在我的 ws.aspx 页面中,该页面没有母版页引用,并且是空的,除了

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="ws.aspx.vb" Inherits="CRTWebApp.ws" %>

<html>
<head>
</head>
<body>
</body>

在我的 ws.aspx.vb 文件中,它是这样声明的

<System.Web.Services.WebService()> _ 
Partial Public Class ws
 Inherits System.Web.UI.Page

<System.Web.Services.WebMethod()> _ 
<System.Web.Script.Services.ScriptMethod(ResponseFormat:=Script.Services.ResponseFormat.Json)> _
        Public Shared Function HelloWorld() As String
            Return "hello world"
        End Function
    End Class

在萤火虫中,如果我点击“long clicky text”,就会发生这种情况

POST HelloWorld 404 Object Not Found

ws.aspx 在同一个文件夹中,它吐出的 url 是正确的,我可以浏览该页面(虽然它是空的..)

这是请求和响应

Response Headers
Server  Microsoft-IIS/5.1
Date    Wed, 15 Sep 2010 21:43:37 GMT
WWW-Authenticate    Negotiate NTLM
Connection  close
Content-Length  4431
Content-Type    text/html

Request Headers
Host    localhost
User-Agent  Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.9) Gecko/20100824 Firefox/3.6.9 (.NET CLR 3.5.30729)
Accept  application/json, text/javascript, */*
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
Content-Type    application/json; charset=utf-8
X-Requested-With    XMLHttpRequest
Referer http://localhost/CRTWebApp/SysAdmin/cat.aspx?lang=en
Content-Length  2
Cookie  ASP.NET_SessionId=clvadayboyqwilizioi4ks55
Pragma  no-cache
Cache-Control   no-cache
4

3 回答 3

1

我不确定为什么除了路径错误之外你会得到 404。您应该考虑使用网络服务。阅读这篇文章:

http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/

于 2010-09-15T23:50:08.157 回答
0

实际页面是否没有结束 HTML 标记?

</html>
于 2010-09-15T21:52:00.973 回答
0

您应该创建一个ASMX页面,而不是创建 ASPX 网页。如果您在解决方案树上单击鼠标右键并选择“添加”、“新建项目”,然后在 Web 模板列表中选择“Web 服务”模板(最后一个),您可以将新服务添加到您的 Web 应用程序。

如果您使用旧版本的 Visual Studio,请参阅http://support.microsoft.com/kb/301273http://www.vbdotnetheaven.com/UploadFile/mmehta/SimpleWebService04262005065102AM/SimpleWebService.aspx作为示例。

于 2010-09-16T01:40:39.617 回答