使用javascripts XMLHttpRequest在localhost上打开Firefox扩展文件

时间:2011-06-30 09:44:21

标签: javascript firefox-addon xmlhttprequest

我有一个简单的JavaScript函数可以打开XML文件。文件URL只是现在显示的网站之一,通过

在Firefox扩展的JavaScript文件中获得
var url =content.document.location.href;

这很好,接下来,

xml=loadXMLDoc(url);

应该给我这个文件,它在互联网上的网站上运行得很好。但是,我现在设置了一个本地机器,而不是http:publicwebsite.com/file.rdf我现在有http://localhost/file.rdf,突然JavaScript函数loadXMLDoc不会产生任何结果。

function loadXMLDoc(dname)

{

if (window.XMLHttpRequest)

{

    xhttp=new XMLHttpRequest();

}

else

{

    xhttp=new ActiveXObject("Microsoft.XMLHTTP");

}
try 
{
    xhttp.open("GET",dname,false); // open server interface
} 
catch (err)
{ // if error occurs
    alert("XMLHttpRequest.open() failed.\n"+    err);
}


xhttp.open("GET",dname,false);

xhttp.send("");
alert(xhttp.responseXML);

return xhttp.responseXML;

}

警报(xhttp.responseXML);返回null。

这是原始政策相同的问题还是我错过了什么?

1 个答案:

答案 0 :(得分:0)

您正在撰写扩展程序 - 没有同源政策,您可以阅读任何您喜欢的内容。我宁愿怀疑本地服务器返回的MIME类型不正确,它需要是一个XML MIME类型才能正确处理XMLHttpRequest(在这种情况下可能是application/rdf+xml)。如果您使用Apache,则服务器配置中的以下指令应该:

AddType application/rdf+xml .rdf

如果你无法影响服务器,但你确定你得到的是XML文件,你也可以使用overrideMimeType

xhttp.overrideMimeType("application/rdf+xml");