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