发送大字符串时,Spring MVC ajax POST请求失败

时间:2013-10-11 08:44:56

标签: ajax spring spring-mvc web-applications

我正在开发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'不存在”,即使我知道我正在传递它。我该怎么办?

2 个答案:

答案 0 :(得分:2)

我修好了。我更改了我的apache tomcat的server.xml文件。也就是说,我将maxPostSize设置为-1意味着无限制。谢谢,ragnor指出了方向)))

答案 1 :(得分:0)

这与你的字符串大小无关,你提到错误代码是400。 对于长字符串,错误代码是414 - uri太大,它来自GET请求,其限制接近8000个字符。