我是javascript和REST服务的新手。我试图从网址中获取一些数据。我写的javascript代码如下: -
<script>
var request = new XMLHttpRequest();
request.open("GET", "https://findtest.akamai.com/_api/search/query?querytext=%27Agora%27&sourceid=%2782cdf98b-cc8b-48c3-a706-d88c1333cc4b%27&QueryTemplatePropertiesUrl=%27spfile://webroot/queryparametertemplate.xml%27&rowlimit=60&selectproperties=%27Title,Author,Url,Date%27&StartRow=%270%27&trimduplicates=%27true%27", false);
request.send();
var xml = request.responseText;
document.write(xml);
</script>
当我在浏览器IE / Chrome中打开它时: - 同样的响应在屏幕上闪烁片刻,然后显示正确的XML,如下所示: -
我无法在我的javascript中获取响应XML。我需要解码某种编码吗?我想要正确的XML响应。
请记住,在写入HTML页面时,您正在编写HTML而不是纯文本。 <
和&
(至少)必须编码为实体。
document.write
在2018年几乎没有地方(或者真的是21世纪)。您可以改为附加文本节点,以便将字符串用作文本,而不是HTML:
document.body.appendChild(document.createTextNode(xml));
例:
var xml = "<root><thing/><another-thing/></root>";
document.body.appendChild(document.createTextNode(xml));
您甚至可以将其包装在code
元素中:
var code = document.createElement("code");
code.appendChild(document.createTextNode(xml));
document.body.appendChild(code);
例:
var xml = "<root><thing/><another-thing/></root>";
var code = document.createElement("code");
code.appendChild(document.createTextNode(xml));
document.body.appendChild(code);