gpt4 book ai didi

java - 当参数很长时出现 411 Length required 错误

转载 作者:行者123 更新时间:2023-12-01 11:28:42 25 4
gpt4 key购买 nike

我正在使用 Angular JS 对 Google App Engine 上运行的 Java servlet 执行 POST 请求。该代码工作正常,不幸的是我注意到如果一个(或多个)参数非常长,我会收到以下错误:

Error: Length Required

POST requests require a Content-length header.

这是我的 Angular 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 等是不同的字段,但主要是文本区域。有什么建议吗?老实说我不知道​​该怎么办。

编辑:我尝试自己在 header 中设置内容长度,但我收到了预期的错误...

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

Refused to set unsafe header "Content-Length"

所以基本上,如果我设置了 Content-Length,浏览器将拒绝执行调用,如果我不设置它,那么服务器会说这是必需的...我能做什么?

最佳答案

您使用的 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) {

});

关于java - 当参数很长时出现 411 Length required 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30614677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com