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

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

Код: 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
13.03.2013, 23:37
    #38183014
*Ihor*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax не передает на сервер больше чем 1032 символов!
POST или GET ? почему не показали сам ajax ?
...
Рейтинг: 0 / 0
13.03.2013, 23:39
    #38183016
Паганель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax не передает на сервер больше чем 1032 символов!
*Ihor*почему не показали сам ajax ?+1
...
Рейтинг: 0 / 0
14.03.2013, 00:15
    #38183047
rusik48
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax не передает на сервер больше чем 1032 символов!
вот 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
14.03.2013, 00:37
    #38183060
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax не передает на сервер больше чем 1032 символов!
jsonp
...
Рейтинг: 0 / 0
14.03.2013, 00:56
    #38183066
rusik48
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ajax не передает на сервер больше чем 1032 символов!
МСУjsonp

dataType: 'jsonp' ?

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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



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

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


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