2013-04-29 3 views
1

Я использую Firefox 20.0.1 и Apache. У меня есть некоторые вызовы AJAX для извлечения HTML-документа с сервера. Странно то, что в одной функции вызов AJAX работает нормально, но в другой функции для получения другого документа он не работает. Кроме того, он работает в Chrome.AJAX не работает должным образом в Firefox

Любые идеи о том, что это может быть? Код выглядит следующим образом:

loc = "Temp\folder1\folder2\title.html"; 
var req = new XMLHttpRequest(); 
req.open("POST", loc, false); 
req.send(); 
alert(req.responseText); // Displays "object not found" error. 

Справочная информация:
Я пишу читателя EPUB. Файл EPUB хранится на сервере и извлекается с использованием PHP. Я хочу получить (например) содержимое главы 1, которое хранится в документе HTML в извлеченном месте.

Решение
Проблема была в Firefox имеет проблемы с обратной косой черты в URL. Я просто заменил все обратные косые черты передними косыми чертами перед отправкой запроса.

+0

По какой причине вы используете 'false', чтобы сделать его синхронным? Поскольку это запрос POST, вы можете использовать 'req.setRequestHeader (« Content-type »,« application/x-www-form-urlencoded »);' прямо перед 'req.send();'. Вы уверены, что URL существует? – Ian

+0

Нет реальной причины для его синхронности; может изменить его, когда он работает. Я добавил setRequestHeader, и он все еще не работает. Да, я на 100% уверен, что URL-адрес существует (он работает в Chrome). –

+0

Итак, что показано, если вы выполняете 'alert (req.status);' прямо перед вашим другим «предупреждением»? – Ian

ответ

2

Текст «объект не найден» является псевдонимом для ошибки HTTP 404 на некоторых веб-серверах. Если вы запустите alert(req.status); после своего req.send();, он может дать представление о том, что может быть проблемой. В вашем случае на самом деле отображается ошибка 404, и ее можно проследить до URL-адреса, содержащего в нем \ символов.

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