1

我目前正在尝试在 asp.net2.0 中开发一个聊天应用程序,并要求我拨打电话。我的aspx Page Webmethod问题是我无法拨打页面 webmethod。

在ff的错误控制台中没有显示任何消息,所以无法找出我哪里出错了。拨打网络服务时没有问题。

这是我写的代码

 $(document).ready(function(){
   $("#btnSend").click(function(){
     $.ajax({
      type:"POST",
      data:"{}",
      url:"Chat.aspx/GetTime",
      contentType:"application/json; charset=utf-8",
      dataType:"json",
      success:function(msg){
        alert(msg.d);
      },
      error:function(msg){
        alert(msg.d);
      }
   });

  });

});

这是我的chat.aspx页面。GetTime函数没有被调用?是 url 的问题吗?

[WebMethod] 
public static string GetTime()
{
   return DateTime.Now.ToString();
}
4

1 回答 1

0

我要看的三件事是:

1.) 我不确定 ASP.NET 2.0 是否可以使用 JSON AJAX 的东西。我认为这是在 3.5 中出现的,但可能是在考虑 ASP.NET AJAX 实现而不是 jQuery。请参阅:Jquery's Ajax Property For Asp.Net 2.0,特别是:

您需要将此属性添加到您的网络服务器类

[System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService

并将此属性赋予您的功能

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]

2.) 您可能需要检查您使用的 jQuery AJAX 版本是否与 ASP.NET 2.0 兼容。我记得那里有一个问题,需要使用旧版本的 jQuery(如 1.3)请参阅:http: //forum.jquery.com/topic/jquery-ajax-not-working-for-asp-net-2-0 -7-5-2011

3.) 这可能是一个长镜头,但您的页面是名为 Chat.aspx 还是 chat.aspx?Javascript 大小写很重要 (O;

远射,所有人,祝你好运(:

[编辑] 刚刚重读了这个问题,突然出现了另一个想法:按钮来自您的 .ASPX 页面吗?我问的原因是,当它在页面上呈现时,您的按钮可能不再是 'ID="btnSend"' 而是 'ID="ctl_btnSend_0897234h15807"' 左右。如果您已附加您的 jQuery 以查找“#btnSend”,则它可能不再是 DOM 中的相同 ID。

希望有帮助![/编辑]

于 2013-04-03T14:28:16.320 回答