Ответ 1
Ваш браузер предупреждает межсайтовый скриптинг. Вы должны использовать относительный путь, иначе большинство браузеров просто вернут ошибку или пустой ответText.
Следующий пост, вероятно, также связан с вашей проблемой:
Почему следующий код На основе примера Mozilla не работает? Пробовал с Firefox 3.5.7 и Chrome.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
</body>
<script>
var req = new XMLHttpRequest();
req.open('GET', 'http://www.mozilla.org/', false);
req.send();
if(req.status == 200) {
alert(req.responseText);
}
</script>
</html>
Пожалуйста, убедитесь, что браузер вытаскивает html с локального диска (файл:///C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html)
В Firefox он дает следующую ошибку:
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: file:///C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html :: <TOP_LEVEL> :: line 10" data: no]
Что я делаю неправильно? Я хочу отправить запрос удаленному хосту и оповестить результат (позже добавить в div).
Ваш браузер предупреждает межсайтовый скриптинг. Вы должны использовать относительный путь, иначе большинство браузеров просто вернут ошибку или пустой ответText.
Следующий пост, вероятно, также связан с вашей проблемой:
Я также предполагаю, что вы открыли тестовую страницу HTML прямо в браузере, судя по вашей ссылке на file:///...
. Для вызовов XMLHttpRequest
вам необходимо обслуживать HTML-код с сервера. Попробуйте что-то вроде xampp (http://www.apachefriends.org/en/xampp.html), чтобы запустить и запустить локальный сервер, а затем запустить тест из http://localhost/XMLHTTP.html
.
Примечание. Это не решает проблему с одним и тем же происхождением, но это позволит использовать следующий код:
<script>
var req = new XMLHttpRequest();
req.open('GET', '/myTestResponse.html', false);
req.send();
if(req.status == 200) {
alert(req.responseText);
}
</script>
Проблема с безопасностью не?
Предположительно firefox не позволяет локальному файлу разговаривать с удаленным хостом?
Скаутинг по сети - нашел это. Попытайтесь добавить это к началу своего script:
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
alert("Permission UniversalBrowserRead denied.");
}
Не может гарантировать, что это сработает; потому что в конечном итоге то, что вы пытаетесь сделать, - это ввести отверстие безопасности, которое браузеры были специально закодированы для подключения (междоменные запросы).
Существуют некоторые специальные сценарии, в которых его можно включить, хотя обычно, по усмотрению пользователя.
Вы не можете делать запросы по доменам, даже с локальными файлами.
https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript
Если вы не, вы разрабатываете расширение, которое не имеет таких же ограничений, как веб-страница.