【问题标题】:implementing ajax using jquery使用 jquery 实现 ajax
【发布时间】:2013-02-18 05:08:28
【问题描述】:

我尝试使用 jQuery 实现 ajax。这是我第一次使用 ajax.so 在按钮单击中我需要显示当前日期时间。为此,我编写了以下代码

//==============aspx页面===============

<script type="text/javascript">

    $(document).ready(function (){
        var Button1 = $("#Button1");
        var Label1 = $("#Label1");
        Button1.click(function (){
          $.ajax({
                type: "POST",
                url: "/myownajax14/WebService/WebService1.asmx/GetDateTime",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (msg) {
                    $("#Label1").text(msg.d);
                    //alert('hi');
                    },
                error:alert('error');     
            });     

        });
    });

//================asmx.cs页面===========

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
    [WebMethod]
    public string GetDateTime()
    {
        return DateTime.Now.ToString();
    }
}

我的问题是,它没有给出答案..它没有显示任何错误。这段代码有什么错误吗?请帮助我..

【问题讨论】:

  • 首先您应该使用 FireBug 跟踪您的请求
  • 您可以对此进行调试以准确查看问题所在。比如在通过VS调试的时候,在方法中放一个断点,看是否命中。如果是这样,那么调用它的javascript就可以了,所以问题必须在之后。此外,请查看浏览器开发人员工具中的“网络”选项卡,以查看服务器请求是否真的发生过。如果不是,那么问题出在调用该方法的代码上。无论结果如何,通过使用您的工具进行调试,您将了解很多关于问题是什么(或不是)的信息。
  • 试试这个:Button1.click(function (e){ e.preventDefault() 并使用错误函数error:function(){alert('error')};
  • @Jai:我试过了。但它不起作用。仍然给出了相同的结果..
  • @pearl90 在成功函数中尝试这个并在控制台中查看你会得到什么:console.log(msg);

标签: c# jquery ajax json


【解决方案1】:

我也有类似的问题,试试这个很简单:

你需要指定type="button"属性。

【讨论】:

【解决方案2】:

contentType: "应用程序/json;"表示客户端需要服务端响应一个json类型的数据,但是服务端响应的是一个字符串类型的数据。

在“成功”块中,“msg”必须像'2010-10-10',所以在msg.d中会发生错误。

尝试以下字符串类型数据,或在服务器代码中响应 json 类型数据,例如 {"y":2010,"m":10,"d":10}。

contentType: "application/text; charset=utf-8",
success: function (date) {
    $("#Label1").text(date);
}

【讨论】:

    【解决方案3】:

    您是否尝试过使用浏览器直接访问 ASMX?这样,您可以轻松查看您的 ASMX 正在产生什么样的响应...

    【讨论】:

      猜你喜欢
      • 2018-03-19
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      相关资源
      最近更新 更多