2015-06-03 2 views
0

Я выполняю запрос POST с помощью Angular JS против Java-сервлета, работающего в Google App Engine. Код работает отлично, к сожалению, я заметил, что если один (или более) параметры очень долго я получаю следующее сообщение об ошибке:Получение длины 411 Требуемая ошибка, когда параметры очень длинные

Error: Length Required

POST requests require a Content-length header.

Это мой Угловая JS код:

app.controller('mycontroller', ['$scope', '$http', '$log', function($scope,$http,$log) { 

this.myfunction = function() { 

$http({ 
    method: 'POST', 
    url: '/myservlet', 
    params: { method: 'my_method', param1 : $("#param1").val(), param 2: ... } 
}).success(function(data) { 

}).error(function(data) { 

}); 

}; 
} 

Param1, param2 и т. д. - это разные поля, в основном текстовые. Любое предложение? Честно говоря, я не знаю, что делать.

EDIT: Я попытался установить Content-Length в заголовке себя, но я получаю сообщение об ошибке, как я ожидал ...

headers : { 'Content-Length' : 0 }, 

Refused to set unsafe header "Content-Length"

Так в основном, если я установить Content-Length браузер отказывается выполнять вызов, если я его не устанавливаю, сервер говорит, что это необходимо ... Что я могу сделать?

ответ

1

params аргумента используется используется для передачи GET переменных как часть URL даже когда method является POST ($http docs). Чтобы передать информацию в теле запроса POST, вы должны использовать аргумент data.

Таким образом, ваш запрос должен быть:

$http({ 
    method: 'POST', 
    url: '/myservlet', 
    data: { method: 'my_method', param1 : $("#param1").val(), param 2: ... } 
}).success(function(data) { 

}).error(function(data) { 

}); 
+0

Таким образом, на стороне сервлета request.getParameter («метод») возвращает нуль :( – raz3r

+0

Секундочку, хочу взглянуть на то, как Java ест это – MeLight

+0

HTTP://stackoverflow.com/questions/14525982/getting-request-payload-from-post-request-in-java-servlet они говорят здесь, что вам нужно использовать 'getReader()' для чтения тела запроса – MeLight

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