我正在尝试将一些xml和xslt内容加载到以下html文件中:
<html>
<head>
<script>
function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
function displayResult()
{
xml=loadXMLDoc("FooBar.xml");
xsl=loadXMLDoc("FooBar.xsl");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("FooBar").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("FooBar").appendChild(resultDocument);
}
}
</script>
</head>
<body onload="displayResult()">
<div id="FooBar" />
</body>
</html>
问题是此代码在Apple Safari中完美运行,没有任何警告或错误。
但在Chrome上,它表示XMLHttpRequest cannot load file:///C:/Path/To/fooBar.xml. Cross origin requests are only supported for HTTP.
另一个问题是我不会在任何服务器上部署de xml,xslt和html。
任何人都可以提供帮助吗?
谢谢。
答案 0 :(得分:1)
是。这看起来像是Chrome的一个问题。
http://code.google.com/p/chromium/issues/detail?id=58151于10月5日提交。
答案 1 :(得分:1)
这显然是Chrome的一项安全功能,danny.lesnik提供的link详细介绍了如何绕过。
“尝试使用参数--allow-file-access OR --allow-file-access-from-files从命令行启动Google Chrome”