使用JavaScript下载xml文件并将其保存在变量中
我正在使用jQuery Mobile创建一个PhoneGap应用程序。 我有一个位于internet服务器上的xml文件(可通过web服务器(例如)访问)。我想以某种方式读取这个xml文件,并在Java脚本中将该文件的内容以字符串形式保存在变量中。 你会怎么做使用JavaScript下载xml文件并将其保存在变量中,javascript,jquery,jquery-mobile,cordova,Javascript,Jquery,Jquery Mobile,Cordova,我正在使用jQuery Mobile创建一个PhoneGap应用程序。 我有一个位于internet服务器上的xml文件(可通过web服务器(例如)访问)。我想以某种方式读取这个xml文件,并在Java脚本中将该文件的内容以字符串形式保存在变量中。 你会怎么做 var contentOfXmlFile = ""; read Xml file --> Save it in the contentOfXmlFile variable. alert(contentOfXmlFile); 在
var contentOfXmlFile = "";
read Xml file --> Save it in the contentOfXmlFile variable.
alert(contentOfXmlFile);
在此之后,xml文件中的文本将显示在警报窗口中。您可以通过ajax查询来实现这一点,如以下内容
jQuery.ajax({
type :"GET",
url : dataUrl,
success : function(dataXML){
//dataXML will have the complete xml..
},
error : function(){
//error handler..
}
});
其中dataUrl是指向xml的URL。您可以通过ajax查询来实现这一点,例如:
jQuery.ajax({
type :"GET",
url : dataUrl,
success : function(dataXML){
//dataXML will have the complete xml..
},
error : function(){
//error handler..
}
});
其中dataUrl是指向xml的URL。只需使用AJAX:
var myXML = ""
var request = new XMLHttpRequest();
request.open("GET", "http://www.example.com/myXmlFile.xml", true);
request.onreadystatechange = function(){
if (request.readyState == 4) {
if (request.status == 200 || request.status == 0) {
myXML = request.responseXML;
}
}
}
request.send();
变量myXML将是一个可操作的XML文档。只需使用AJAX:
var myXML = ""
var request = new XMLHttpRequest();
request.open("GET", "http://www.example.com/myXmlFile.xml", true);
request.onreadystatechange = function(){
if (request.readyState == 4) {
if (request.status == 200 || request.status == 0) {
myXML = request.responseXML;
}
}
}
request.send();
变量myXML将是一个您可以操作的XML文档。这可能违反跨域策略,因为PhoneGap在
localhost
上运行。但我可能错了。对于跨域,希望我们需要使用JSONP
,但我没有尝试过。当您在移动设备上从file://协议运行时,不会应用跨域策略。这可能违反跨域策略,因为PhoneGap在localhost
上运行。但我可能错了。对于跨域,希望我们需要使用JSONP
,但我没有尝试过。当您在移动设备上使用file://协议运行时,不会应用跨域策略。因为您是在PhoneGap之外进行操作,所以任何AJAX请求都会违反跨域策略。您研究过JSONP请求吗?当您在移动设备上从文件://协议运行时,不会应用跨域策略。因为您是在PhoneGap之外进行操作,所以任何AJAX请求都会违反跨域策略。您查看过JSONP请求吗?当您在移动设备上从文件://协议运行时,不会应用跨域策略。