powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ajax не передает на сервер больше чем 1032 символов!
24 сообщений из 24, страница 1 из 1
ajax не передает на сервер больше чем 1032 символов!
    #38183013
rusik48
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

У меня есть простая форма.
Данные с нее собираются и передаются на другой сервер:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
        var ResultArray = new Array();
        ResultArray.push({ id: "Name", value: $("#fio_name").val() });
        ResultArray.push({ id: "Adress", value: $("#adress").val() });

        ...
        итд

        var string_to_server = JSON.stringify(ResultArray);



и полученная строка улетает на сервер.
Все работает без проблем, но если в строке больше 1033 символов, то все - до сервера ничего не доходит.
Проверял и локально и по сети и это не зависит от того сколько символов в каждом отдельном поле. В любом из полей может быть 1000 символов и если остальные поля пустые, то все работает.
Перестает работать только если сумма всех символов во всех полях превышает 1033 символа.

Проверял в Хроме и ИЕ9 - везде именно магическое число 1033.

Что это? Почему так? Кто нибудь с этим сталкивался?
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183014
*Ihor*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
POST или GET ? почему не показали сам ajax ?
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183016
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*Ihor*почему не показали сам ajax ?+1
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183047
rusik48
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот ajax

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
            $.ajax(
                {
                    url: 'http://127.0.0.1:81/jud/save_user_common_data_jsonp?callback=?',
                    success: function (result) {

                           //...........

                    },
                    data: {
                        'user_info_and_users_cars_1_only_user_info_2': 2
                        , 'sp_code_new_qty': JSON.stringify(ResultArray)
                    },
                    dataType: 'json',
                    timeout: 100000,
                    error: function (result) { alert('Ошибка соединения с сервером'); }
                });



когда я говорил про 1033, я не учел размер второй переменной user_info_and_users_cars_1_only_user_info_2 и размер callback - а
вместе с ними количество передаваемых символов не должно быть больше 1119.
если больше, то все - функция на сервере даже не запускается.
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183060
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jsonp
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183066
rusik48
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУjsonp

dataType: 'jsonp' ?

неее, роли не играет
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183068
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183076
*Ihor*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для начала укажи метод - type: "POST" как минимум
GET имеет 2048 лимит по длине часто
Если тебя POST не пройдет, смотри настройки севера, смотря что у тебя за веб сервер. параметр Request Size Limit или чтото подобное
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183088
rusik48
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
*Ihor*для начала укажи метод - type: "POST" как минимум
GET имеет 2048 лимит по длине часто
Если тебя POST не пройдет, смотри настройки севера, смотря что у тебя за веб сервер. параметр Request Size Limit или чтото подобное

POST не могу никак, у меня кроссдоменный запрос.

При компиляции запускается эмулятор вычислений Windows Azure, где там убрать ограничение не знаю.

Значит GET имеет 2048 лимит, вот похоже на то.
Хотя получаю я данные тоже через GET, а там у меня намного больше информации идет наверно раз в 100 больше.
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183096
*Ihor*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rusik48Значит GET имеет 2048 лимит, вот похоже на то.
Хотя получаю я данные тоже через GET, а там у меня намного больше информации идет наверно раз в 100 больше.
!!!Не путай Request и Response .. тебе бы для начала вникнуть в суть обоих понятий, а потом заодно почему сложности с кроссовыми.

Request - ограничивают для безопасности серверов, для закрытых систем лимит размера Request увеличивают , но для паблика часто урезают с целью безопасности. Плюс сам по себе GET имеет лимит. А вот Response обычно имеет лимит разве что по TimeOut , это часто вылазит когда слишком большой ответ отдается клиенту и по частям, вот тогда можно словить TimeOut. И с Response бывают проблемы из-за маленького размера буфера в настройках веб сервера, а скрипт пытается выдать большой ответ через буфер.

Так что ваша проблема чисто в размере GET Request. И если у вас нету возможности использовать POST , тогда вам нужно искать варианты обходные. Да и кстати POST для кросс , давно уже не проблема и для тогоже Jquery уже давно есть сторонние Ajax плугины с решением этой проблемы. Думаю найти сами с можете, когдато решалось подобное как раз через подобный Plugin для Jquery
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183304
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rusik48,

В вэбконфиге поковыряйтесь. У меня было такое, щас уже не помню.
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183325
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rusik48POST не могу никак, у меня кроссдоменный запрос.Можете, если сервер позволяет.

Вот, читайте: " Кросс-доменный XMLHttpRequest ".
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183333
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANArusik48POST не могу никак, у меня кроссдоменный запрос.Можете, если сервер позволяет.

Вот, читайте: " Кросс-доменный XMLHttpRequest ".
Вообще-то, имхо, и так сойдёт. Ограничения по длине были только у ИЕ, может и остались, а может и нет. Надо проверить.
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183347
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge, я всего лишь говорю, что кросс-доменный Ajax запрос уже давно реальность, а не "не могу никак".
А чем в итоге будет пользоваться ТС - решать ему.
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183815
rusik48
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergerusik48,

В вэбконфиге поковыряйтесь. У меня было такое, щас уже не помню.

в webconfig-е ничего не нашел из того что есть. А что вставить туда новое не знаю.

В общем пока вывод такой: нужно каким-то образом сделать кроссдоменный Post запрос.

*Ihor*для начала укажи метод - type: "POST" как минимум


указал, все работает также как и раньше. Я почему то думал ошибку выдаст, из за того что я с POST обращаюсь на другой домен. Но нет, работает, но и изменений по размеру данных нет.

А вообще если я указываю type: "POST" это гарантирует что запрос именно POST или jQuery просто игнорирует это параметр в моем случае?
Просто странно, что добавил POST и ни ошибки ни изменений по размеру запроса - ничего не произошло. То есть все таки GET запрос остался?

Может передаваемые данные архивировать? Но во первых не знаю как, а во вторых это кривое конечно решение.
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183887
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rusik48, имхо если ContentType отличен от text/plain, то браузер сначала шлёт серверу preflight request, и сервер в ответе говорит позволяет он или нет Cross-Origin request к нему. Если да, то браузер уже выполняет нужный POST запрос.

Посмотрите фидлером идут ли запросы на сервер и какие. И что отвечает сервер.
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183942
няка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так все таки, кто виноват клиент или сервер?
совсем никак до сервера не долетает или все таки на уровне сериализации уже отшибает?
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38183989
няка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: xml
1.
2.
3.
4.
5.
6.
7.
  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="стотыщмильёнов"></jsonSerialization>
      </webServices>
    </scripting>
  </system.web.extensions>
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38184853
rusik48
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
няка
Код: xml
1.
2.
3.
4.
5.
6.
7.
  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="стотыщмильёнов"></jsonSerialization>
      </webServices>
    </scripting>
  </system.web.extensions>



спасибо за совет, попробовал, но не сработало.

някатак все таки, кто виноват клиент или сервер?
совсем никак до сервера не долетает или все таки на уровне сериализации уже отшибает?

сериализация проходит нормально всегда. на сервере вызываю действие контроллера (MVC) и в первой же строке пишу, например, так:
MessageBox.Show("sp_code_new_qty.length = " + sp_code_new_qty.length);
сообщение выходит только если строка меньше определенной длины о которой писал выше.
то есть, я так думаю, до сервера просто не доходит.

skyANArusik48, имхо если ContentType отличен от text/plain, то браузер сначала шлёт серверу preflight request, и сервер в ответе говорит позволяет он или нет Cross-Origin request к нему. Если да, то браузер уже выполняет нужный POST запрос.

Посмотрите фидлером идут ли запросы на сервер и какие. И что отвечает сервер.

фидлером раньше не пользовался, спасибо за совет, поработаю с ним. Но пока такое впечатление, как писал выше, что до сервера не доходит просто и все.
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38185275
няка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошу прощенья, говоря про сериализацию я конечно же имел ввиду десериализацию полученных данных на сервере

ну и ошибку все таки хотелось бы узнать, а не просто не работает
Код: javascript
1.
error: function (result)


эта функция отрабатывает?
тогда поглядите что в result там
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38187046
rusik48
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
няка,
Код: javascript
1.
2.
3.
    } catch (e) {
        alert("Ошибка: " + e.name + ": " + e.message);
    }



на клиенте вот так ошибку обрабатываю, обычно все отслеживает.
а в этом случае ничего не показывает вообще ни на сервере ни на клиенте.
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38187119
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rusik48, c фидлером поработали?
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38187699
няка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rusik48,

та при чем тут ваш catch, когда вам нужно смотреть ошибку пришедшую с сервера
...
Рейтинг: 0 / 0
ajax не передает на сервер больше чем 1032 символов!
    #38187722
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это?
Код: xml
1.
2.
3.
4.
5.
<security>
      <requestFiltering>
        <requestLimits maxQueryString="Например, 32768"></requestLimits>
      </requestFiltering>
</security>
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ajax не передает на сервер больше чем 1032 символов!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]