我正在开发web-app,其中包括某种基于Web的XML编辑器。基本上我使用html textarea作为我的“编辑器”,当用户点击“保存”按钮时,包含修改后的XML的AJAX发布请求被发送到服务器。我使用$ .ajax函数
function saveXML(){
var cm = editor.mirror;
var textXML = cm.getValue(); // textXML is a String representing edited XML
$.ajax({
url: "saveEditedBatch",
data: {xmlString: textXML},
type: 'POST',
success : function(response){
},
error : function (){
alert("error");
}
});
在服务器端我有控制器
@RequestMapping(value = "/saveEditedBatch", method = RequestMethod.POST)
public @ResponseBody JsonResponse saveEditedBatch(@RequestParam(value = "xmlString") String xmlString){
JsonResponse response = new JsonResponse();
byte[] byteXML = xmlString.getBytes();
byteXML = xmlAccess(new ByteArrayInputStream(byteXML));
// do something with byteXML
return response;
}
当我的XML以及我发送给服务器的String很小时 - 一切正常。但是当XML很大时 - 我得到“HTTP Status 400 - 必需的字符串参数'xmlString'不存在”,即使我知道我正在传递它。我该怎么办?
答案 0 :(得分:2)
我修好了。我更改了我的apache tomcat的server.xml文件。也就是说,我将maxPostSize设置为-1意味着无限制。谢谢,ragnor指出了方向)))
答案 1 :(得分:0)
这与你的字符串大小无关,你提到错误代码是400。 对于长字符串,错误代码是414 - uri太大,它来自GET请求,其限制接近8000个字符。