html中的Jquery访问主体并转换为json失败

html中的Jquery访问主体并转换为json失败,jquery,ajax,json,Jquery,Ajax,Json,我正在尝试使用jquery访问外部HTML页面的主体。该页面的主体包含一个XML结构,我想将其转换为JSON以进一步访问数据 $.ajax({ url:'http://pruebanico.comze.com/testxml.html', dataType:'html', type:'POST', timeout:20000, success:function(r

我正在尝试使用jquery访问外部HTML页面的主体。该页面的主体包含一个XML结构,我想将其转换为JSON以进一步访问数据

$.ajax({        
           url:'http://pruebanico.comze.com/testxml.html',  
           dataType:'html',
           type:'POST',
           timeout:20000,  
           success:function(response, status) {         

              var xmlDoc = $.parseXML(response);
              xmlBody = xmlDoc.find('body');
              alert(xmlBody);
              var jsonString = xml2json(xmlBody, '', html);
              alert(jsonString);

 }
我正在使用以下xml2json转换器:


第一个警报(xmlBody)为空。我想将正文的文本内容解析为有效的XML结构,作为xml2json函数的输入,但没有太大成功

您有一个输入错误,因为您使用的是
xmlDoc
而不是
xml
(顺便说一下,这是运行脚本的页面主体)

记住,你不能打电话到:

 url:'http://pruebanico.comze.com/testxml.html',  
除非脚本在同一域上运行

编辑-你可以试试

var xmlDoc = $.parseXML(xml);
xmlBody = $(xmlDoc).find('body');

您有一个输入错误,因为您使用的是
xmlDoc
而不是
xml
(顺便说一下,这是运行脚本的页面的主体)

记住,你不能打电话到:

 url:'http://pruebanico.comze.com/testxml.html',  
除非脚本在同一域上运行

编辑-你可以试试

var xmlDoc = $.parseXML(xml);
xmlBody = $(xmlDoc).find('body');

您是否正在执行来自不同域的ajax请求?如果“是”,则由于安全限制,它将不起作用。更多关于这一点:没有域问题。我正在通过手机上的phonegap覆盖域限制。您是否正在从其他域向其他域执行ajax请求?如果“是”,则由于安全限制,它将不起作用。更多关于这一点:没有域问题。我正在通过手机上的phonegap覆盖域限制。与jquery mobile一起使用phonegap没有域问题。由于主体选择器返回一个对象,xml2json需要一个字符串,如何将主体对象转换为字符串?我需要另外一个步骤将body对象转换为xmlDoc字符串。@nicBBB如果需要字符串,则应使用$('body').html()返回位于body标记内的html(这是一个xml,因为html是xml)将.html添加到body选择器确实返回html,但是正如您前面指出的,它是运行脚本的页面的html。如何获取ajax调用的响应主体?@nicBBB我认为应该使用response:可以在其上使用parseXML(),然后使用find()。我为你的努力更新了我的答卷Nicola。我用你的评论更新了我的问题,但仍然不起作用。第一个警报为空。与jquery mobile一起使用phonegap没有域问题。由于主体选择器返回一个对象,xml2json需要一个字符串,如何将主体对象转换为字符串?我需要另外一个步骤将body对象转换为xmlDoc字符串。@nicBBB如果需要字符串,则应使用$('body').html()返回位于body标记内的html(这是一个xml,因为html是xml)将.html添加到body选择器确实返回html,但是正如您前面指出的,它是运行脚本的页面的html。如何获取ajax调用的响应主体?@nicBBB我认为应该使用response:可以在其上使用parseXML(),然后使用find()。我为你的努力更新了我的答卷Nicola。我用你的评论更新了我的问题,但仍然不起作用。第一个警报为空。