JQuery方法控件转到成功块,但msg.d显示Undefined

时间:2012-12-07 11:56:25

标签: c# asp.net jquery-ui jquery

我正在调用这个javascript方法" test"在.net1.1 onload of body.My webmethod返回字符串数据,但我无法在我的Jquery方法中获取该数据。      在HiddenPage.aspx中     ==============================

功能测试()  {

       debugger;

$.ajax({
                type: "POST",
                url: "HiddenPage.aspx/GetServerTime",
                //async : false,
                //data: "i=1",
                contentType: "application/json",
                //dataType: "text",
                success: function(msg) 
                // error: function(, textStatus, errorThrown) {
                {
                    debugger;
                         alert(msg.d);

                }, 
                error: function(msg) 
                //complete: function (jqXHR, textStatus) {

                {
                   debugger;
                   alert(msg.d); 
                    alert("Error! Try again..."); 
                    //return false;
                }


            })
     // return '';
  }

在HiddenPage.aspx.cs中我放了webmthod.My WebMethod是: -

    [WebMethod()]
    public static string GetServerTime()
    {

        return DateTime.Now.ToString();
    }

3 个答案:

答案 0 :(得分:1)

您能否发布返回数据的代码。

我建议您创建一个ASMX文件以使用Web服务。它很容易使用。 创建一个Web服务,然后确保在webmethod之前在webservice中添加以下行。

[System.Web.Script.Services.ScriptService]

之后,您可以按照自己编写的方式添加网络方法。

你的jquery应该是这样的。

  $.ajax({
            type: "POST",
            url: "webservice/WebService1.asmx/GetServerTime",
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnSuccessCall,
            error: OnErrorCall
        });        

    function OnSuccessCall(msg) {

        alert(msg.d);


    }

    function OnErrorCall(msg) {
        alert(msg.status + " " + msg.statusText);
    }

它可能对你有所帮助。快乐的编码。

答案 1 :(得分:0)

不太确定返回数据的样子,但您可以尝试以下操作。

$.ajax({
    type: "POST",
    url: "HiddenPage.aspx/GetServerTime",
    //async : false,
    //data: "i=1",
    contentType: "application/json",
    dataType: "html",
    success: function(data){
        alert(data);
    },
    error: function(jqXHR, textStatus) {
        debugger;
        if (jqXHR.status === 0) alert('Not connect.\n Verify Network.');
        else if (jqXHR.status == 404) alert('Requested page not found. [404]');
        else if (jqXHR.status == 500) alert('Internal Server Error [500].');
        else if (textStatus === 'parsererror') alert('Requested JSON parse failed.');
        else if (textStatus === 'timeout') alert('Time out error.');
        else if (textStatus === 'abort') alert('Ajax request aborted.');
        else alert('Uncaught Error.\n' + jqXHR.responseText);
        //return false;
    }
    //return '';
}​

答案 2 :(得分:0)

尝试以下

$.ajax({
  type: "POST",
  url: "HiddenPage.aspx/GetServerTime",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(msg) {
            alert(msg.d);
    // Do something interesting here.
  }
});