2015-02-03 4 views
0

Я отправляю большие текстовые данные UTF-8 (иногда содержит китайский) через jQuery метод ajax. Метод установлен в POST. Но на моей стороне сервера (я использую tomcat 7) всякий раз, когда я делаю request.getParameter, он дает усеченные данные.request.getParameter возвращает усеченные значения

Пример данных: var datas = "article={some very long UTF-8 text}&id=234&author=3434 "

Мой JQuery код:.

$.ajax({ 
     type: "POST", 
     url: src, 
     processData: true, 
     data: datas, 
     cache: false, 
     success: function(response){ 

     }, 
    }) 

Идя корыта некоторые статьи я обнаружил, что я должен изменить свой разъем и установить maxPostSize и maxHTTPHeaderSize я сделал все и изменилось к большим значениям, но к тем же результатам. Пожалуйста, расскажите мне, почему это происходит и как его решить?

+0

какие данные вы получаете, наконец, на стороне сервера –

+0

@ ankur-singhal частичные данные. Статья не является полной частью ее. – Shadow

ответ

1

Помимо увеличения числа maxPostSize, я только что изменил свои данные и закодировал их с помощью encodeURIComponent. request.getParameter возвращал усеченные данные, потому что он прерывался из-за специальных символов, представляющих текст UTF-8. Я изменил свои данные в

var datas = "article="+ encodeURIComponent({some very long UTF-8 text})+"&id=234&author=3434" 

И на стороне сервера (Java) я использовал

String article = request.getParameter("article"); 
if(article !=null) // null check is necessary to prevent from exception if value is not sent by client 
article = URLDecoder.decode(article); 

и вещи пошли работать на меня.

+0

У меня была аналогичная проблема. Проблема решена. Благодарю. –

0

POST способ по умолчанию размер 2M.

Если вы используете tomcat как веб-контейнер, попробуйте увеличить maxPostSize.

<Connector 
    debug="0" 
    acceptCount="100" 
    connectionTimeout="20000" 
    disableUploadTimeout="true" 
    port="8080" 
    redirectPort="8443" 
    enableLookups="false" 
    minSpareThreads="25" 
    maxSpareThreads="75" 
    maxThreads="150" 
    maxPostSize="0" 
    URIEncoding="GBK" 
> 

Как указано выше конфигурации, установите maxPostSize к , не означает, что нет предела размера, когда сообщение данных.

Смежные вопросы