这是我调用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结构。但是只有在此功能中它给我错误,让我感到害怕的是它是如此简单
答案 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。