Почему этот JavaScript работает в Safari, а не в Firefox? - PullRequest
4 голосов
/ 28 октября 2010

У меня есть HTML-файл. Я попробовал код на Safari, и он работал нормально. Но когда я попробовал это на Firefox, он не работал. Кто-нибудь может подсказать, как заставить его работать на Firefox?

При нажатии на кнопку отмены я хочу получить содержимое из файла JSP. Это работает, когда я использую этот код в Safari на моем Mac ... но когда я открываю тот же файл с помощью Firefox, он не работает. Я не уверен, что это из-за настроек браузера или по какой-то другой причине. Я проверил настройки браузера Firefox 3.6.12, установленного на Mac, и он включен для javascript и java ...

Когда я проверял HTTPfox, это показывалось в Ошибка загрузки содержимого (NS_ERROR_DOCUMENT_NOT_CACHED) в содержимом

Кто-нибудь может подсказать, что происходит не так ???

Ответы [ 5 ]

6 голосов
/ 28 октября 2010

XMLHttpRequests работает только тогда, когда запрос находится в том же домене, что и JavaScript, выполняющий запрос. Таким образом, ваш вызов xmlHttp.open() будет работать только в том случае, если этот HTML-файл размещен на csce.unl.edu.

2 голосов
/ 28 октября 2010

Я бы попробовал запустить Firefox на Mac и посмотреть, куда меня это приведет.Если это не сработает, тогда проблема в браузере, если он работает, то как вы загружаете сайт

2 голосов
/ 28 октября 2010

Может ли окно Ubuntu обращаться к URL http://csce.unl.edu:8080?Это могут быть настройки сети / прокси / брандмауэра на виртуальной машине или в настройках Firefox.

1 голос
/ 28 октября 2010

Я открыл консоль firebug> и вставил

var xmlHttp, handleRequestStateChange; 
handleRequestStateChange = function() {if (xmlHttp.readyState==4 && xmlHttp.status==200) { var substring=xmlHttp.responseText; alert(substring); } }      

xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "http://csce.unl.edu:8080/test/index.jsp?id=c6c684d9cc99476a7e7e853d77540ceb", true);
xmlHttp.onreadystatechange = handleRequestStateChange; xmlHttp.send(null);

И я увидел, что все работает.В чем именно ошибка?Можете ли вы открыть Firebug и посмотреть на ошибки JavaScript.

Изменить попробуйте это:

 var req = new XMLHttpRequest();  
 req.open('GET', '/');  
 req.onreadystatechange = function (aEvt) {  
   if (req.readyState == 4) {  
      if(req.status == 200)  
       alert(req.responseText);  
      else  
       alert("Error loading page\n");  
   }  
 };  
req.send(null);
1 голос
/ 28 октября 2010

Использование JQuery . Он имеет библиотеку AJAX , которая выполняет эти проверки совместимости браузера для вас.

Кроме того, Firebug может пригодиться, чтобы увидеть, отправляется ли запрос, и посмотреть, каков ответ.

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