Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2016, 19:19
Новичок на форуме
Отправить личное сообщение для okreader1 Посмотреть профиль Найти все сообщения от okreader1
 
Регистрация: 24.09.2015
Сообщений: 5

.innerHTML = http.responseText не работает в хроме и опере, а в фаерфоксе работает!
if (link=="http://localhost/players.txt"){
					while (Players.firstChild) Players.removeChild(Players.firstChild);

                   Players.innerHTML = 	http.status+" "+http.responseText;

......

 <div id="Players">  
    </div>



Это чудесно работает в Firefox. Но в опере и хроме не работает. статус возвращает 0. после чего ничего нет- пусто!.

Вопиющая несоместимость. Че делать?
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2016, 19:36
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Где код настройки http?
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2016, 19:39
Новичок на форуме
Отправить личное сообщение для okreader1 Посмотреть профиль Найти все сообщения от okreader1
 
Регистрация: 24.09.2015
Сообщений: 5

function GetContent(link) {  
  
        var Players = document.getElementById('Players');  
        var Servers = document.getElementById('Servers');  
  
     //   cont.innerHTML = loading.innerHTML;  
  
        var http = createRequestObject();  
        if( http )   
        {  
					if(link=="http://localhost/servers.txt"){
						while (Servers.firstChild) Servers.removeChild(Servers.firstChild);
					 
					}
					else if(link=="http://localhost/updateservers.txt"){
							while (Servers.firstChild) Servers.removeChild(Servers.firstChild);
					
					}
					
            http.open('get', link);  
            http.onreadystatechange = function ()   
            {  
                if(http.readyState == 4)   
                {  
			 
				if (link=="http://localhost/players.txt"){
					//while (Players.firstChild) Players.removeChild(Players.firstChild);
                   Players.innerHTML = 	http.status+" "+http.responseText;
				    //Players.innerHTML = http.responseText;
					}else if(link=="http://localhost/servers.txt"){
						while (Servers.firstChild) Servers.removeChild(Servers.firstChild);
					  Servers.innerHTML = "<div id='table-wrapper'><div id='table-scroll'><table width=100%><tbody><table width=600>"+http.responseText+"</tbody></table></div></div>";
					}
					else if(link=="http://localhost/updateservers.txt"){
							while (Servers.firstChild) Servers.removeChild(Servers.firstChild);
					  Servers.innerHTML = "<div id='table-wrapper'><div id='table-scroll'><table width=100%><tbody><table width=600>"+http.responseText+"</tbody></table></div></div>";
					}
				if (http.responseText == "Error: you must be logged in"){
				cont.innerHTML = cont.innerHTML + http.responseText;
					clockStop();
				}
					
                }  
            }  
            http.send(null);      
        }  
        else   
        {  
            document.location = link;  
        }  
    }  

    // создание ajax объекта  
    function createRequestObject()   
    {  
        try { return new XMLHttpRequest() }  
        catch(e)   
        {  
            try { return new ActiveXObject('Msxml2.XMLHTTP') }  
            catch(e)   
            {  
                try { return new ActiveXObject('Microsoft.XMLHTTP') }  
                catch(e) { return null; }  
            }  
        }  
    }
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2016, 20:02
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

okreader1,
обязательно использовать абсолютные урлы? Если да, попробуй заменить адрес ссылки. То есть не
http.open('get', [url]http://localhost/servers.txt[/url])
а
http.open('get', [url]http://127.0.0.1/servers.txt[/url])
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2016, 20:18
Новичок на форуме
Отправить личное сообщение для okreader1 Посмотреть профиль Найти все сообщения от okreader1
 
Регистрация: 24.09.2015
Сообщений: 5

Попробовал, в фаерфоксе последнем робит, в хроме последнем нет. в опер 35 версии нет, в опере 18.57 версии робит(случайно осталась). В Вин 7 интернет експлорере тоже робит.
Ответить с цитированием
  #6 (permalink)  
Старый 20.02.2016, 20:42
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Попробуй в ответе сервера добавить заголовок
Access-Control-Allow-Origin: *
Ответить с цитированием
  #7 (permalink)  
Старый 20.02.2016, 21:17
Новичок на форуме
Отправить личное сообщение для okreader1 Посмотреть профиль Найти все сообщения от okreader1
 
Регистрация: 24.09.2015
Сообщений: 5

Нашел ошибку. http сервер на который делался запрос отправлял хеадер Content-Length:
В котором указывалось слишком большое число байт. Если подсчитывать его верно а не грубо, то все работает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрипт multibox для joomla - не работает в опере lamanzh Opera, Safari и др. 17 26.06.2009 12:35
roktabs не работает в Опере greatilya Opera, Safari и др. 15 21.05.2009 18:02
Скрипт не работает в опере, работает в IE XpycTuk Общие вопросы Javascript 9 06.03.2009 15:50
Не работает скрипт в Опере stosen Элементы интерфейса 34 03.11.2008 20:38
insertBefore выдаёт ошибку и не работает на опере и фоксе SunnyDay Общие вопросы Javascript 3 19.09.2008 12:08