.net 2.0 ajax jquery pagemethod 404对象未找到

时间:2010-09-15 21:48:23

标签: jquery ajax web-services json pagemethods

在我的母版页中,我有

<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
在萤火虫中,如果我点击“长时间点击文字”就会发生这种情况

POST HelloWorld 404 Object Not Found

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

这里是请求和回复

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

</html>

答案 2 :(得分:0)

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

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