我正在创建一个网站,该网站依赖于托管在单独域中的XML文件的数据。简而言之,如果以HTTP://example.com/test.XML托管的XML文件中的元素从true变为false,我希望更改域中HTML文件的元素。如果XML与HTML文件位于同一目录中,则可以实现此目的,但是我找不到解决该问题的解决方案,因为它位于不同的域中。
我尝试使用jquery,但是我不确定自己在做什么错。我尝试过的代码如下所示:
$(document).ready(function(){
var myXML = ""
var request = new XMLHttpRequest();
request.open("GET", "http://example.com/test.XML", true);
request.onreadystatechange = function(){
if (request.readyState == 4) {
if (request.status == 200 || request.status == 0) {
myXML = request.responseXML;
}
}
}
request.send();
document.getElementById("test").innerHTML = new XMLSerializer().serializeToString(myXML.documentElement);
});
请帮助,并提前感谢你的宝贵时间!
尝试使用不是最近的提取API。
$(document).ready(function(){
var myXML = ""
fetch("http://example.com/test.XML")
.then( response => response.text() )
.then( response => {
//response is a string containing xml...
document.getElementById("test").innerHTML = response
})
.catch( console.error )
;
});
我的事情是你不需要序列化xml,你应该只能直接将其放进去...但是不确定
您的代码似乎运行良好,谢谢。但是,我仍然收到错误消息,您能帮我找到解决方法吗?
我收到的错误如下:CORS策略已阻止从源“空”获取“ example.com/test.xml”处的访问:请求中不存在“ Access-Control-Allow-Origin”标头资源。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”,以在禁用CORS的情况下获取资源。
您将一个api制作到另一个域(该应用程序的api即使端口不同也是如此),因此浏览器具有保护机制,以确保您的应用程序可以请求此API。这就是所谓的Cors。只是读一点