如何在JQuery中读取webservice返回的XML数据
ASMX: JQUERY:如何在JQuery中读取webservice返回的XML数据,jquery,xml,ajax,web-services,Jquery,Xml,Ajax,Web Services,ASMX: JQUERY: public class ItemRecord { public string model { get;set; } public string verzia { get;set; } public string typ { get;set; } public string motor { get;set; } } [WebMethod] public ItemR
public class ItemRecord
{
public string model { get;set; }
public string verzia { get;set; }
public string typ { get;set; }
public string motor { get;set; }
}
[WebMethod]
public ItemRecord GetRecord(int id)
{
ItemRecord record = new ItemRecord();
using (SqlConnection sConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["bazarovkyConnectionString"].ToString()))
{
sConnection.Open();
SqlCommand sCommand = sConnection.CreateCommand();
sCommand.CommandText = "select id_model, motor from data_motorizacia where id=@id";
sCommand.Parameters.AddWithValue("@id", id);
SqlDataReader sReader = sCommand.ExecuteReader();
if (sReader.Read())
{
record.model = sReader["id_model"].ToString();
record.motor = sReader["motor"].ToString();
}
}
return record;
}
我想做的是在ajaxFinish中读取马达和id_模型的值。但它要么返回对象(若我只引用XML),要么未指定或为空
如何跟踪/调试从.ASMX文件返回的内容 您可以尝试使用而不是xml我没有复制粘贴您的代码,所以它有点不同,但您会明白
id = $("#view_id", row).text();
$.ajax({
type: "POST",
url: "/data.asmx/GetRecord",
data: "{'id':'" + id + "'}",
contentType: "application/json; charset=utf-8",
dataType: "xml",
processData: false,
error: function (XMLHttpRequest, textStatus, errorThrown) { ajaxError(XMLHttpRequest, textStatus, errorThrown); },
success: function (xml) { ajaxFinish(xml); }
});
function ajaxFinish(xml) {
// parse the object
alert($(xml).find("motor").text());
}
这里,arr是一个数组,其中读取值并使用loopCounter将数据存储在数组arr中,xmlNode是xml中的节点名称(您在响应中获得的名称)w您希望获取的值,但我希望返回值,而不是在.ASMX文件中生成整个HTML代码。您不需要在ASMX中生成整个HTML代码。只需从webservice返回json而不是xml。“xmlNode”是一个特殊的标记吗?或者我把节点名放在那里?你把节点名放在那里:)
var arr= new Array();
var loopCounter = 0;
$.ajax({
type: "POST",
url: "yourURL",
dataType: "xml",
success: function(xml) {
$(xml).find('xmlNode').each(function() {
arr[loopCounter] = $(this).find('xmlNode').text();
loopCounter += 1;
});