无法从SOAP解析xml
Can not parse xml from SOAP
我从使用JS的SOAP服务得到了一个XML作为响应。但是我不能用HTML显示它。这是我的JS代码。
function renderXML(xmlDoc) {
var i;
var list="<ul class='ui-listview'> ";
var x = xmlDoc.getElementsByTagName("Table");
for (i = 0; i <x.length; i++) {
list += "<li class='ui-li-static'>" +
x[i].getElementsByTagName("Name")[0].childNodes[0].nodeValue +
"</li> " ;
}
list += "</ul>";
document.getElementById("ws_data").innerHTML = list;
}
我得到了这个XML作为响应。http://www.webservicex.net/country.asmx/GetCountries
显示
app.js:33 Uncaught TypeError: Cannot read property 'getElementsByTagName' of null
在这条线上
var x = xmlDoc.getElementsByTagName("Table");
但是,如果我向该函数发送一个硬编码的xml,它就可以正常工作!并以html显示。
var data= jQuery.parseXML("<NewDataSet> <Table> <Name>Afghanistan, Islamic State of</Name> </Table> <Table> <Name>Albania</Name> </Table> <Table> <Name>Algeria</Name> </Table> <Table> <Name>American Samoa</Name> </Table> </NewDataSet> ");
renderXML(data);
问题出在哪里?
您的web服务返回以下格式的XML:
<string>XML as TEXT</string>
因此,您需要解析XML as TEXT
以获得XML文档。请查看此演示:https://jsfiddle.net/iRbouh/q20w39f8/
此外,在检查服务器响应头之后,没有Access-Control-Allow-Origin
,这意味着服务器不允许跨源访问。由于您提出了跨来源HTTP请求,您的请求将被浏览器按照同源策略拒绝:
同源策略限制文档或脚本从一个来源可以与另一个来源的资源交互。这是一个用于隔离潜在恶意的关键安全机制文件。
简而言之,您不能向该web服务发出ajax请求。
附言:在我的演示中,我使用了CORS代理:https://crossorigin.me/
相关文章:
- 在 html 中使用 javascript 解析 xml
- 使用jquery动态解析XML文件
- 使用 java 脚本或 Jquery 解析 XML
- 如何在 JavaScript 中解析 XML
- 使用php解析xml并将其转换为json以与$.ajax一起使用时遇到问题
- Ionic框架:从responseText解析xml
- jquery从单个和多个标签解析xml
- 解析XML和Javascript函数的问题
- 在Javascript中解析XML时出现问题
- JQuery AJAX试图解析XML,即使使用“dataType”:“JSON”
- 解析 XML 到 js 数据,如何访问特定标记
- 如何从字符串解析 XML dom
- Google Apps 脚本:解析 XML 会导致错误:“无法在对象中找到函数 getChildren”
- PhoneGap - 如何使用javascript解析xml字符串
- 如何在javascript Nashorn引擎中解析XML
- 在 JS 中解析 XML 文件
- 语法错误?解析 XML 值时
- 如何在javascript中解析xml字符串?(不是客户端,与浏览器相关)
- 如何在 Jquery 中解析 XML 对象
- 需要解析其他网页的值.首先,我需要调用其他网页并从中解析 XML 值