Невозможно загрузить xml из внешнего файла с помощью jQuery
Я пытаюсь загрузить внешний xml с помощью следующего кода, но он не работает
$( document ).load( "data.xml", function( response, status, xhr ) {
console.log( xhr.status + " " + xhr.statusText );
});
У меня есть файл data.xml
и js
в той же папке.
В chrome он возвращает 404 error
.
В FF он перенастраивает 0 [Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)"
.
Я не мог понять, почему это происходит? Прошу пролить свет на эту проблему.
Обновления: Я сделал снимок с помощью $.get()
, как указано ниже, но все еще не удался.
Между тем я также попытался использовать чистые js, как показано ниже
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;
}
xmlDoc=loadXMLDoc("data.xml");
console.log(xmlDoc);
По-прежнему сталкиваются с ошибками.
Ошибка в FF: NS_ERROR_DOM_BAD_URI: доступ к ограниченному URI запрещен [Break On This Error]
xhttp.send();
и
Ошибка в chrome: XMLHttpRequest не может загрузить файл:///C:/Users/admin/Desktop/public_html%281%29/public_html/data.xml. Запросы на кросс-начало поддерживаются только для HTTP. xml.js: 13 Неоткрытый NetworkError: произошла сетевая ошибка.
Обновления:
Я нашел этот question полезным, но есть ли способ решить эту проблему?
Ответы
Ответ 1
Возможно, это то, что вы ищете....
$(document).ready(function(){
$.ajax({
url: 'data.xml',
dataType: 'xml',
success: function(response, status, xhr){
console.log( xhr.status + " " + xhr.statusText );
}
});
});
UPDATE
Прочитайте этот пост
Ответ 2
После долгой борьбы и с помощью сообщества я понял проблему.
Политика одинакового происхождения ограничивает загрузку документа или script из одно происхождение может взаимодействовать с ресурсом из другого источника.
Это означает, что это невозможно в системном файле, поэтому с помощью этого ответа я использовал WAMPServer для запуска моего script, и он работал как шарм.
$.get("http://localhost/public_html(1)/public_html/xml/data.xml",
function( response, status, xhr ) {
console.log( response );
});
Спасибо!