Javascript 尝试将json转换为xml,但显示错误
我正在尝试将json结果转换为xml类型。然而,它似乎不起作用。找不到问题所在。请帮忙 代码是:Javascript 尝试将json转换为xml,但显示错误,javascript,jquery,asp.net,xml,json,Javascript,Jquery,Asp.net,Xml,Json,我正在尝试将json结果转换为xml类型。然而,它似乎不起作用。找不到问题所在。请帮忙 代码是: <script src="../Jquery Autocomplete/jquery-1.7.2.min.js" type="text/javascript"></script> <script src="../Jquery Autocomplete/jquery.json-2.2.min.js" type="text/javascript"></scrip
<script src="../Jquery Autocomplete/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="../Jquery Autocomplete/jquery.json-2.2.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function()
{
$(".openModalLink").click(function()
{
var start=$(this).parent().parent().find(".start").val();
var end =$(this).parent().find(".end").val();
$.ajax(
{
type: "POST",
url: "frmCollegeExamScheduleMst.aspx/ServerSideMethod",
data: "{'paraml': '" + start + "','param2': '" + end + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
cache: false,
success:function(result)
{
var xmlDoc = $.parseXML(result);
var xml = $(xmlDoc);
var customers = xml.find("Table");
var data = new Array();
var i =0;
$.each(customers, function ()
{
//do something
});
},
error: function(err) {
alert('Error:' + err.responseText + ' Status: ' + err.status);
}
});
});
});
指定dataType:json时,响应将转换为json对象,而不是字符串
尝试删除该参数。如果AJAX请求的响应是xml,则应相应地进行设置
$.ajax({
data: {paraml: start, param2: end},
dataType: "xml",
success:function(result) {
var $xml = $(result);
}
});
不需要contentType,也不需要在数据中进行连接。请尝试以下操作:
success: function(result) {
var xmlDoc = $.parseXML(result.d);
...
}
[WebMethod]
public static string ServerSideMethod(string param1, string param2)
{
DataSet ds = ...
return ds.GetXml();
}
注意结果。我猜您的ASP.NET页面方法如下所示:
success: function(result) {
var xmlDoc = $.parseXML(result.d);
...
}
[WebMethod]
public static string ServerSideMethod(string param1, string param2)
{
DataSet ds = ...
return ds.GetXml();
}
此字符串是JSON序列化的。为了在客户端上检索,ASP.NET基础结构添加了d参数:
{"d":"some xml here"}
另一件您绝对应该在代码中更改的事情是替换:
data: "{'paraml': '" + start + "','param2': '" + end + "'}"
与:
以确保您的请求参数是正确的JSON编码。例如,考虑一下如果start='foo''bar'会发生什么。您最终将得到:
data: {param1: 'foo'bar', param2: 'baz'}
您可以看到,这完全破坏了JSON。为什么要将XML作为JSON发送?它们是两种完全不同的格式。ServerSideMethod page方法返回什么?它的签名是什么。此外,它似乎不工作是一个非常糟糕的问题描述。抱歉的光描述。ServerSideMethod将查询数据库并返回数据集。我在该方法中使用了返回ds.GetXml来转换它。这个返回一个错误。错误如下所示:错误:\u003cNewDataSet\u003e\r\n\u003cTable\u003e\r\n\u003cSTU\u NAME\u003egagan\u003c/STU\u NAME\u003e\r\n\u003cREG\u003e1\u003c/REG\u003e\r\n\u003c/Table\u003e\r\n\u003cTable\u003e\r\n\u003c\u003e\u003e\u003e\r\n\u003cSTU\u003e\u003e\u003e\r\n\n\u003cSTU\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003e\u003c/Table\u003e\r\n\u003c/NewDataSet\u003e状态:200 ServerSideMethod的结果通过返回ds转换为字符串格式。GetXml@Prince,这是您的XML。此外,您还没有显示错误发生的位置,尽管当代码输入“success:functionresult{alertresult;}”时会出现错误,“是的,我也尝试了该错误..但是没有任何帮助会给出相同的错误。thnx..是的,现在一切似乎都正常工作。但是在这一步成功时出错:functionresult{$xmlDoc=$.parseXMLresult.d;}显示没有人尝试删除.d。result.d的值是什么?