【问题标题】:Jquery Ajax call to webservice is failing对 Web 服务的 Jquery Ajax 调用失败
【发布时间】:2010-10-29 15:50:24
【问题描述】:

有人可以帮忙吗?我从 jquery 调用 asp.net webservice 时遇到问题。实际上我认为它可能是 jquery ......因为我有一个断点并且它没有到达 webservice..

这是我的jquery,webservice方法接受2个参数...

所以我设置了一个简单的测试以通过 7 和 7 .. 我也尝试用“测试”这个词替换,但它不起作用..

基本上落在显示“抱歉错误发生”但错误未定义的错误函数中。

jQuery.ajax({
            type: 'POST'
            , url: 'CallService.asmx/TempCanMakeCall'
            , contentType: 'application/json; charset=utf-8'
            , dataType: "json"
            , data: "{'reservationNum':'7','completedReservationNum':'7'}"
            , success: function(data, status) {
                alert(data);
            }
            , error: function(xmlHttpRequest, status, err) {
                alert('Sorry! Error happens.' + err);
            }
    }
        );

这里是 asp.net 网络服务

[WebMethod()]
    public bool TempCanMakeCall(string reservationNum, string completedReservationNum )
    {

            return true;
    }

【问题讨论】:

    标签: asp.net jquery ajax web-services


    【解决方案1】:

    xmlHttpRequest.responseText 一直是我处理 jQuery AJAX 错误时的首选。

    尝试将您的 ASP.NET 函数设为静态:

    [WebMethod()]
    public static bool TempCanMakeCall(string reservationNum, string completedReservationNum )
    {
    
            return true;
    }
    

    另请注意,返回的 JSON 值封装在名为“d”的对象中(特定于 ASP.NET。)要在成功时显示返回值,您需要这样做:

    success: function(data, status) {
                alert(data.d);
            }
    

    【讨论】:

      【解决方案2】:

      jquery ajax 调用看起来不错。我认为您需要确保“CallService.asmx”的路径正确。现在的情况是,我只会在进行 jQuery 调用的文件与 ASMX 位于同一虚拟目录中时才工作。

      【讨论】:

        【解决方案3】:

        在您的错误回调函数中,您可以检查“xmlHttpRequest.status”以获取从服务器返回的 http 代码。这可能会给你另一个线索。如果上面的 ichiban 是正确的,它应该是 404。

        【讨论】:

          【解决方案4】:

          您可以检查xmlHttpRequest.responseText 属性。响应文本很可能是服务器返回的包含错误原因的 html 文档。

          如果您使用的是 Visual Studio,您还可以在 Internet Explorer 中启用脚本调试,并在错误函数中输入以下关键字:debugger。浏览器将此视为断点,并将调用调试器(应该是 Visual Studio)。现在您可以查看xmlHttpRequest 实例的全部内容了。

          为清楚起见,您的错误函数将如下所示:

          function(xmlHttpRequest, status, err)
          {
              debugger;
              ...rest of your function...
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-08-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-17
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多