2013-02-09 59 views
0

我必须从服务器读取XML请求。 如果我在本地保存XML,一切工作正常。来自Webservice的XML语法错误jquery

脚本:

$(document).ready(function() { 
    $.ajax({ 
     type: 'GET', 
     url: 'http://localhost:1410/?SNO=56789&ASQL=plu%20mec%2010;', 
     crossDomain: true, 
     dataType: "jsonp", 
     success: parseXml 
    }); 
}); 

function parseXml(xml) { 
    $(xml).find('dataset').each(function() { 
     $("#output").append($(this).find('var[key="article.name"]').text() + "<br />"); 
    }); 
} 

XML输出:

<document name="screen"> 
    <section name="status"> 
    <dataset> 
     <var key="organization.number">2919</var> 
     <var key="organization.name">Testname</var> 
     <var key="organization.businessdate">09.02.2013</var> 
     <var key="situation.number">0</var> 
     <var key="situation.name">Normalbetrieb</var> 
     <var key="site.number">0</var> 
     <var key="site.name">Normalbetrieb</var> 
     <var key="pricelevel.number">1</var> 
     <var key="pricelevel.name">Standardpreis</var> 
     <var key="terminal.number">0</var> 
     <var key="terminal.name">WebKasse</var> 
     <var key="terminal.status">open</var> 
     <var key="terminal.tapster">inactive</var> 
     <var key="waiter.number">1</var> 
     <var key="waiter.name">Kellner 1</var> 
     <var key="table.number">5</var> 
     <var key="table.balance">3.2</var> 
     <var key="table.sales">3.2</var> 
     <var key="profile.number">1</var> 
     <var key="profile.name">Standard</var> 
     <var key="execution.severity">I</var> 
     <var key="execution.code">23600003</var> 
     <var key="execution.message">Mec article list.</var> 
    </dataset> 
    </section> 
    <section name="plu.list"> 
    <dataset> 
     <var key="type">article</var> 
     <var key="article.number">1</var> 
     <var key="article.name">0,1 l Becher Sekt</var> 
     <var key="article.displayname"/> 
     <var key="article.price">3.7</var> 
     <var key="article.plunumber">1</var> 
     <action key="STANDARD">book plu 1;</action> 
    </dataset> 
    [...] 

有了这个代码我的网页是空白的,并显示此错误:

SyntaxError: syntax error 

<document name="screen"><section name="status"><dataset><var[...] 

奇怪的是:我可以在错误中看到XML输出

如果我改变data type:xml

没有错误,页面空白。

+0

http://img191.imageshack.us/img191/9229/synerr.png解析为XML如果我在错误点击,我可以看到洞xml文件?! – TheCyX 2013-02-10 11:39:00

回答

0

您应该使用dataType:xml,因为您期望得到xml响应。 如果您对不同Web服务器的结果不同,请检查 响应的MIME类型。

我认为问题是错误的MIME类型。

或者你可以得到的回应是字符串,并用jQuery

var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>", 
xmlDoc = $.parseXML(xml), 
$xml = $(xmlDoc), 
$title = $xml.find("title"); 
+0

Content-Type:text/xml; charset = utf-8“将其解析为xml ...”我不知道该怎么做 – TheCyX 2013-02-10 15:11:46