使用jquery ajax asp.net 4.0调用asmx服务

Sha*_*que 7 asp.net jquery asmx

我正在尝试使用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);                    
            }
        });
Run Code Online (Sandbox Code Playgroud)

这没有显示任何消息,代码在asp.net 4.0中,我错过了什么?

编辑 - 我将dataType更改为xml,现在成功函数正在返回xml后返回

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">Hello World</string>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码来解析xml数据,它在alert中显示为null

success: function (data) {
    edata = $(data).find("string").html();
    alert(data);
}
Run Code Online (Sandbox Code Playgroud)

use*_*uld 6

我相信这是因为你有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);                    
            }
        });
Run Code Online (Sandbox Code Playgroud)

UPDATE

我认为这是因为你使用.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);
    }
})
Run Code Online (Sandbox Code Playgroud)