我正在尝试使用 jquery 调用示例 asmx 服务,这是 jquery 代码
$.ajax({
type: "POST",
url: "/Services/Tasks.asmx/HelloWorld",
data: "{}",
dataType: "json",
contentType: "application/xml; charset=utf-8",
success: function (data) {
alert(data);
}
});
这没有显示任何消息,代码位于 asp.net 4.0 中, 我错过了什么吗?
编辑 - 我将数据类型更改为 xml,现在成功函数正在工作,它返回以下 xml
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">Hello World</string>
我正在使用以下代码来解析 xml 数据,它在警报中显示 null
success: function (data) {
edata = $(data).find("string").html();
alert(data);
}
最佳答案
我相信这是因为您有 dataType: "json"并且它期望响应内容类型相同,但正在返回 XML。我打赌整个事件正在发起,但没有成功。
尝试
$.ajax({
type: "POST",
url: "/Services/Tasks.asmx/HelloWorld",
data: "{}",
dataType: "json",
contentType: "application/xml; charset=utf-8",
success: function (data) {
alert(data);
},
complete: function (data) {
alert(data);
}
});
更新
我认为这是因为你正在使用.html(),你需要使用text()。另外,我不知道您是否打算这样做,但您的警报中有data
,我假设您打算使用edata
。以下内容对我有用:
jQuery.ajax({
type: "POST",
url: "/yourURL",
dataType: "xml",
data: "{}",
contentType: "application/xml; charset=utf-8",
success: function(data) {
edata = $(data).find("string").text();
alert(edata);
}
})
关于asp.net - 使用jquery ajax asp.net 4.0调用asmx服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4808641/