Использование javascripts XMLHttpRequest для открытия файла на локальном хосте для расширения Firefox - PullRequest
1 голос
/ 30 июня 2011

У меня есть простая функция JavaScript, которая открывает XML-файл.URL файла - это просто веб-сайт, отображаемый прямо сейчас, полученный в файле JavaScript с расширением Firefox через

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);возвращает ноль.

Это проблема с той же политикой происхождения или что я пропустил?

1 Ответ

0 голосов
/ 30 июня 2011

Вы пишете расширение - здесь нет политики одного и того же происхождения, вам разрешено читать все что угодно.Я скорее подозреваю, что тип MIME, возвращаемый вашим локальным сервером, неверен, это должен быть тип XML MIME, чтобы правильно обрабатываться XMLHttpRequest (вероятно, application/rdf+xml в этом случае).Если вы используете Apache, следующая директива в конфигурации сервера должна делать:

AddType application/rdf+xml .rdf

Если вы не можете повлиять на сервер, но уверены, что вы получите обратно XML-файл, вы также можете использовать overrideMimeType :

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