Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятное ограничение XMLHttpRequest под IE, Передаю >2060 символов - то ошибка 
V
    Опции темы
kaa
Дата 27.8.2007, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



В общем САБЖ


Причем Fierfox даже не жалуется ниначто, а вот IE орёт что неизвестаная ошибка здесь

Код

req.open("GET", requestString, false);


Почиму? отчиго? первый разс таким сталкиваюсь. Притом независимо от метода передачи GET или POST
PM MAIL   Вверх
-=Ustas=-
Дата 27.8.2007, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: нет
Всего: 69



kaa, смотрим куда постим, это во-первых. Во-вторых, ты бы чуть больше кода показал бы, бригада телепатов просто в отпуске.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
kaa
Дата 27.8.2007, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



-=Ustas=-, 
пардону, постил на работе в большой запарке, завтра будет код

Добавлено @ 22:49
А ошибка вылезает если requestString.length>2060

Это сообщение отредактировал(а) kaa - 27.8.2007, 22:49
PM MAIL   Вверх
kaa
Дата 28.8.2007, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



Вот собственно код smile

Код

function Request()
{
    var flagUp = 0; //Хоть один проект должен быть выбран. Если не выбран тона сервер ничего не отправляем.
    //Нужно выбрать текущий проект
    if(document.getElementById("poll-projects-select").options[document.getElementById("poll-projects-select").selectedIndex].value)
    {    
        //Получаем массив флагов подпроектов и массив наименования подпроектов
        var projectCheckArray = new Array();
        var projectNameArray = new Array();
        var checkList = document.getElementsByTagName('input');
        var count=0;
        for(var c=0; c<checkList.length; c++)
        {
            if(checkList.item(c).getAttribute("foo-parent-check"))
            {
                projectCheckArray[count] = checkList.item(c);
                projectNameArray[count] = checkList.item(c).parentNode.nextSibling.innerHTML;
                count++;
            }
        }
        //Составляем строку запроса
        var currentProject = document.getElementById("poll-projects-select").options[document.getElementById("poll-projects-select").selectedIndex].value;
        var requestString = "/content/files/poll/projects/action.php?current_project="+escape(currentProject)+"&count="+projectCheckArray.length;
        
        //Добавляем в строку запроса пары project_name_№=project_name; project_status_№=1/0
        for(var c=0; c<projectCheckArray.length; c++)
        {
            requestString += "&project_name_"+c+"="+escape(projectNameArray[c]);
            if(projectCheckArray[c].checked)
            {
                requestString += "&project_status_"+c+"=1";
                flagUp = 1;
            }
            else
            {
                requestString += "&project_status_"+c+"=0";
            }
        }
        if(!flagUp)
        {
            alert("Выбирите хотя бы один роект о котором Вы хотели бы узнать")
            return 0;
        }
        
        alert(requestString.length);

        //Создаём запрос
        req = CreateXmlHttp();
        req.open("GET", requestString, false);
        req.onreadystatechange = Processing;
        req.send(null);
    }
    else
    {
        alert("Выбирите Ваш проект!")
        return 0;
    }
}

function Processing()
{
    if(req.readyState==4)
        if(req.status==200)
            if(req.responseText=="ok")
            {
                alert("Ваш выбор принят.\nСпасибо за участие!");
            }
    
}

PM MAIL   Вверх
dstorm81
Дата 28.8.2007, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



если не ошибаюсь, метод get имеет ограничение по длине при отправке формы,
а пост не имеет
могу ошибаться smile


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
kaa
Дата 28.8.2007, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



dstorm81, 
Пробовал и POST ставить - всё равно не более 2060 символов :(

Это сообщение отредактировал(а) kaa - 28.8.2007, 12:03
PM MAIL   Вверх
ShurikA
Дата 28.8.2007, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



kaa, 
A ты правильно создаёшь запрос? 
покажи CreateXmlHttp.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
kaa
Дата 28.8.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



function CreateXmlHttp()
{
    if(window.XMLHttpRequest)
    {
        return new XMLHttpRequest();
    }
    try
    {
        return  new ActiveXObject('MSXML2.XMLHTTP');
    }
    catch(e)
    {
        return new ActiveXObject('Microsoft.XMLHTTP');    
    }
    
}

PM MAIL   Вверх
kaa
Дата 28.8.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



В общем всё разрешилось самым благоприятным образом smile

Я, при попытке передать методом пост, забыл указать правильный заголовок типа данных. 

В общем IE POST глотает без проблем.
А на GET у него как будто внутренее ограничение.


PM MAIL   Вверх
kaa
Дата 28.8.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: 1
Всего: 2



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.