我正在尝试通过ajax POST请求将数组从我的jsp发送到我的Servlet。我的数组有一些包含许多字段的对象。如果我尝试发送带有11个对象的数组 - 使用JSON.stringify - 它工作正常(数组在服务器端接收),但是当我尝试发送一个包含12个以上对象的数组时会出现问题。错误是:400 Bad Request
并使用Google Chrome Debugger查找,我发现此错误:fluxos:(unable to decode value)
其中fluxos
是我的数组的名称。
RELEVANTE代码部分:
for(var i=0; i<numberOfConnections; i++) {
fluxo = criaEstruturaFluxo(i);
fluxos.push(fluxo);
}
$.ajax({
type: "POST",
url: 'Servlet?fluxos='+JSON.stringify(fluxos),
success: function (data) {
alert('success');
}
});
...
function criaEstruturaFluxo(i) {
...
...
var fluxo = {
xOrigem: xOrigem,
yOrigem: yOrigem,
xDestino: xDestino,
yDestino: yDestino,
codWorkflow: codWorkflow,
acaoAvanco: acaoAvanco,
codAtividadeOrigem: codAtividadeOrigem[1],
codAtividadeDestino: codAtividadeDestino[1],
numero: numero,
nomeAtividadeOrigem: nomeAtividadeOrigem,
nomeAtividadeDestino: nomeAtividadeDestino,
codConexao: codConexao,
tipoOrigem: tipoOrigem,
tipoDestino: tipoDestino,
xFluxoOrigem: xFluxoOrigem,
yFluxoOrigem: yFluxoOrigem,
xFluxoDestino: xFluxoDestino,
yFluxoDestino: yFluxoDestino,
deletarArquivo: deletarArquivo,
ultimaConexao: ultimaConexao,
caminhoArquivo: caminhoArquivo,
xTela: xTela,
yTela: yTela
};
return fluxo;
}
我的编码数组长度超过8000个字符,因此,我认为它超过了POST请求可以处理的最大长度......这是可能的,还是可能是我发送给我的Servlet的代码?
答案 0 :(得分:6)
你的网址很长。从理论上讲,这不应该导致任何问题,但是实际限制取决于您使用的服务器和代理。发送请求正文的数据而不是网址。
答案 1 :(得分:4)
同意Andres&amp; Luiggi。以下是修改过的代码的样子:
$.ajax({
url: "Servlet",
type: "POST",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ "fluxos": fluxos }),
success: function(data) {
alert("success");
}
});