2008-09-10 1 views
0

Этот код от Prototype.js. Я посмотрел, вероятно, на 20 разных учебников, и я не могу понять, почему это не работает. Ответ, который я получаю, равен нулю.Как получить XML-файл как XML (а не строку) с Ajax в Prototype.js?

new Ajax.Request(/path/to/xml/file.xml, { 
    method: "get", 
    contentType: "application/xml", 
    onSuccess: function(transport) { 
     alert(transport.responseXML); 
    } 
}); 

Если я изменю responseXML к responseText, то он предупреждает меня файл XML в виде строки. Это не PHP-страница, обслуживающая XML, а фактический XML-файл, поэтому я знаю, что это не заголовки ответов.

ответ

3

Если transport.responseXML имеет значение NULL, но у вас есть значение для transport.responseText, то я считаю, что это потому, что он не является допустимым XML-файлом.

Редактировать: Я просто заметил, что в нашем коде здесь всякий раз, когда мы запрашиваем XML-файл, мы устанавливаем тип содержимого в text/xml. Я понятия не имею, если это имеет значение или нет.

1

Просто хочу поделиться своим днем ​​работы над проблемой с результатом NULL для responseXML ответов. Мои результаты были точно такими же, как описано в вопросе: responseText был заполнен XML-файлом, responseXML был NULL. Поскольку я был полностью уверен, что мой файл находится в правильном формате XML, ошибка должна быть где-то другим.

Как упоминалось в Prototype v1.7 документации, я установить тип содержимого для "приложения/XML". Ответ был отправлен постоянно «text/html», несмотря ни на что.

Чтобы устранить проблему, я столкнулся с тем, что мой файл XML имел окончание «.gpx», поскольку он является стандартом де-факто для координат GPS. Коллекция mime-типов моей локальной установки XAMPP Apache предусматривает только окончания «xml» и «xsl». После добавления «gpx» и перезапуска сервера программа работает плавно, как и предполагалось.

В моем случае, есть три решения:

1) редактировать файл "mime.types" Апач. Используя установку XAMPP, вы можете найти ее под «C: \ xampp \ apache \ conf \ mime.types». Найдите запись «application/xml» и измените ее следующим образом:

application/xml xml xsl gpx 

Не забудьте перезагрузить сервер!

2) добавьте тип mime в .htaccess соответствующей папки. Открыть или создать файл .htaccess и добавьте следующую строку:

AddType application/xml xml xsl gpx 

3) во время процесса загрузки, тип изменения файла «XML» вместо того, чтобы все, что у вас есть

Надежда я безопасное время, чтобы один из вас ребята.

Смежные вопросы