Почему мой AJAX-запрос зависит от расширения файла ресурса? - PullRequest
1 голос
/ 03 мая 2011

В следующем примере «xxx.xml» является допустимым XML-файлом, а «xxx.txt» - его копией (но с измененным расширением).

Почему я не могу использоватьфайлы взаимозаменяемо в моем AJAX-запросе?

function test(url, handleT){
    dojo.xhrGet({
        url: url,
        handleAs: handleT,
        load: function(data, ioArgs) {
            console.log('data=',data);
        }
    });
}

test('xxx.xml', 'xml');  //Works OK
test('xxx.txt', 'text'); //Works OK
test('xxx.xml', 'text'); //Works OK

test('xxx.txt', 'xml');  //data === null ?!

Разве параметр handleAs не должен был выполнять эти преобразования для меня уже?

Это что-то общее или это происходит только с Dojo

Ответы [ 3 ]

1 голос
/ 03 мая 2011

Вы можете использовать любое желаемое расширение, если напишите следующее в .htaccess, расположенном в каталоге, содержащем ваши файлы:

ForceType text/xml
0 голосов
/ 03 мая 2011

Похоже, что это была ошибка Fiferox все время: https://developer.mozilla.org/en/XMLHttpRequest#responseXML

(еще не проверял, как это работает в IE)

0 голосов
/ 03 мая 2011

Веб-сервер будет обслуживать различные типы контента для расширений.Придерживайтесь .xml или измените его на веб-сервере.

EDIT

Немного конкретнее: поскольку XML также является текстом, его можно «понизить» до текста - каждый XML-документ являетсятакже текстовый документ.Не каждый текстовый документ является XML-документом, поэтому вы не можете «обновить» его до XML.

Ваш веб-сервер, скорее всего, обслуживает .txt как «обычный / текстовый» - и это не XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...