我无法解决的Ajax中非常简单的错误

时间:2019-08-09 12:50:41

标签: javascript jquery ajax

这是我调用asmx Web服务(xml)的简单代码。

function maxTransaccion() {
    $.ajax({
        type: "POST",
        url: "WebService.asmx/MAxTransaccion",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        crossDomain: true,
        success: function(s) {
            return s.d;
        }
    });
}

但是我收到此错误:

  

消息:“未定义s”   原始:错误

我做错了什么?我在.js文件中多次使用此ajax结构。但是只有在此功能中它给我错误,让我感到害怕的是它是如此简单

1 个答案:

答案 0 :(得分:0)

首先,如果您的服务以XML响应,那么您应该对此进行调整:

    $.ajax({
        type: "POST",
        url: "WebService.asmx/MAxTransaccion",
        dataType: "xml",
        crossDomain: true,
        success: function(s) {
            return s.d;
        }
    });

我认为更改dataType并省略contentType也许可以解决问题。

接下来可以改进的是您的成功处理者。

在使用之前先检查该属性:

        function(s) {
            if (s && s['d']) {
              doSomethingWith(s.d);
            }
        }

但是,因为您最有可能接收XML而不是JSON对象,所以您可能想要这样的东西:

  function(xml) {
    var responseNode = $(xml).find('node');
    doSomethingWith(responseNode.text());
  }

就像评论中提到的那样,仅仅返回一个AJAX调用,可能就什么都不做。因此,您需要另一个函数,您可以在其中获得结果并执行doSomethingWithIt。