Javascript Ajax中非常简单的错误,我可以';解决不了

Javascript Ajax中非常简单的错误,我可以';解决不了,javascript,jquery,ajax,Javascript,Jquery,Ajax,这是我调用ASMXWebService(xml)的简单代码 但我收到了这个错误: 消息:“s未定义” 协议:错误 我做错了什么?我在一个.js文件中多次使用这种ajax结构。但只有在这个函数中,它才会给我错误,让我害怕的是它太简单了。首先,如果您的服务使用XML响应,那么您应该适应: $.ajax({ type: "POST", url: "WebService.asmx/MAxTransaccion", dataType: "xml",

这是我调用ASMXWebService(xml)的简单代码

但我收到了这个错误:

消息:“s未定义” 协议:错误


我做错了什么?我在一个.js文件中多次使用这种ajax结构。但只有在这个函数中,它才会给我错误,让我害怕的是它太简单了。首先,如果您的服务使用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调用中返回,可能什么也做不了。因此,您需要另一个函数,从中获取结果并进行处理。

首先,如果您的服务使用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。

不清楚如何在该代码中定义s,但从异步调用返回没有意义。在success函数中添加第二个参数,以获取状态文本,您可能会得到意外响应。或者查看开发人员工具中的网络选项卡。您说过
contentType:“application/json;charset=utf-8”,
但是没有
数据属性,所以您不能发布json。这没有道理。请查看浏览器开发人员工具中的“网络”选项卡。看看反应。这应该表明它是未定义的…然后查看web服务,找出它返回的原因可能是不清楚如何在该代码中定义s的重复,但从异步调用返回没有意义。在状态文本的success函数中添加第二个参数,您可能会得到意外响应。或者查看开发人员工具中的网络选项卡。您说过
contentType:“application/json;charset=utf-8”,
但是没有
数据属性,所以您不能发布json。这没有道理。请查看浏览器开发人员工具中的“网络”选项卡。看看反应。这应该表明它是未定义的……然后查看web服务,找出它返回可能的副本的原因