无法在Google Chrome中读取XML和/或XSLT

时间:2010-11-04 08:29:09

标签: xml google-chrome

我正在尝试将一些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。

任何人都可以提供帮助吗?

谢谢。

2 个答案:

答案 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”