用Javascript读取XML文件
我用Flask创建了web应用程序。我通过javascript从xml文件中读取数据。它的运行非常出色,但当我在apache上部署flask应用程序时,我在读取当前数据方面遇到了问题。如果我在apache上更改xml文件中的一些数据,我只能看到旧数据。什么也没发生。只有当我重新启动apache服务器时,网页上的数据才会更改。怎么了?我尝试了许多可能的方法来解析XML数据,例如ajax用Javascript读取XML文件,javascript,xml,apache,flask,Javascript,Xml,Apache,Flask,我用Flask创建了web应用程序。我通过javascript从xml文件中读取数据。它的运行非常出色,但当我在apache上部署flask应用程序时,我在读取当前数据方面遇到了问题。如果我在apache上更改xml文件中的一些数据,我只能看到旧数据。什么也没发生。只有当我重新启动apache服务器时,网页上的数据才会更改。怎么了?我尝试了许多可能的方法来解析XML数据,例如ajax function ReadTemperatureFromxXML() { var xmlDoc;
function ReadTemperatureFromxXML() {
var xmlDoc;
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "data.xml", false);
xmlhttp.send();
var xmlDoc = xmlhttp.responseXML;
if (!xmlDoc) {
xmlDoc = (new DOMParser()).parseFromString(xmlhttp.responseText, 'text/xml');
var emp = xmlDoc.getElementsByTagName("temperature");
var temperature1 = emp[0].getElementsByTagName("value")[0].firstChild.data;
temperature1 = temperature1.concat("°C")
document.getElementById("temperature1").innerHTML = temperature1;
....
}
ajax阅读代码
/* $.ajax({
url: 'data.xml',
dataType: 'xml',
success: function(data){
$(data).find('data temperature').each(function()
{
var temperature = $(this).find('value').text();
$('.timeline').append(
$('<li />',{
text: temperature
})
);
});
},
error: function() {
$('.timeline').text('Failed to get')
}
通过我的web浏览器,我查看了网络,可以看到xml文件的要求。
控制台的错误列表与错误日志文件apache相同。
我尝试这样更改apache2.conf
<Directory />
Header set Access-Control-Allow-Origin "*"
</Directory>
标题集访问控制允许原点“*”
有可能解决这个问题吗?或者有没有其他方法来读取xml文件?谢谢你的回复 是的,也许我没有正确地使用Ajax,但它工作得很好。我的问题在flask中,因为我需要重新加载data.xml。。。。。在我使用这个命令之前
@app.route('/data.xml')
def data():
return render_template('/data.xml')
现在我用
@app.route('/data.xml')
def data():
return send_from_directory("templates", "data.xml")
仅当我转到localhost/data.xml时,才重新加载我的xml文件
还有其他命令吗?解决了我的问题。一些时间自动记录的东西。感谢您的回复您没有正确使用AJAX,您必须在访问响应时等待响应
var xmlDoc=xmlhttp.responseXML代码>,xmlhttp.responseXML
未定义。您可以从中了解更多关于AJAX的信息
@app.route('/data.xml')
def data():
return render_template('/data.xml')
@app.route('/data.xml')
def data():
return send_from_directory("templates", "data.xml")