Javascript 用jQuery解析XML
我用过这个:Javascript 用jQuery解析XML,javascript,jquery,html,xml,xmlhttprequest,Javascript,Jquery,Html,Xml,Xmlhttprequest,我用过这个: $(document).ready(function () { $.ajax({ type: "GET", url: "http://domain.com/languages.php", dataType: "xml", success: xmlParser }); }); function xmlParser(xml) { $('#load').fadeOut(); $(xml).find("result").each(functi
$(document).ready(function () {
$.ajax({
type: "GET",
url: "http://domain.com/languages.php",
dataType: "xml",
success: xmlParser
});
});
function xmlParser(xml) {
$('#load').fadeOut();
$(xml).find("result").each(function () {
$(".main").append('' + $(this).find("language").text() + '');
$(".lang").fadeIn(1000);
});
}
我在我的计算机上使用了一个本地XML文件,它工作得很好,但是当我将URL更改为网站时,它只是一直在加载
如何使其工作?跨域请求受到限制。特别是,如果要查询domain.com,则此页面本身应位于domain.com()上。您不能从localhost或您的文件系统查询domain.com(尽管有一些技巧) 编辑
这项技术非常简单,对我来说很有效。但显然,您不能使用它来查询本地主机。
是的,限制了您可以从其他站点获取的内容。如果可以,下载XML文件,将其保存到您的域中,然后使用jQuery发挥您的魔力。我已经做过很多次了(最好是通过cURL/wget和cron作业来实现自动化)。或者使用类似SimplePie的东西
注意,sub.domain.com和domain.com也被视为不同的域。您必须通过站点上的脚本代理xml 例如getxml.php:
然后,将url修改为:url:http://mysite.com/getxml.php?q=http://domain.com/languages.php“
我不确定只检查HTTP\u X\u请求的\u是否会带来任何安全影响,因此您可能需要在那里添加更多安全性来检查ajax,但这确实是可行的
<?php
if(isset($_GET['q']) && isAjax())
{
$q = strip_tags($_GET['q']);
header("Status: 200");
header("Content-type: text/xml");
echo file_get_contents($q,0);
exit();
}
function isAjax() {
return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&
($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'));
}
?>