2013-10-11 31 views
1

我正在开发包含某种基于Web的XML编辑器的Web应用程序。基本上我使用html textarea作为我的“编辑器”,当用户点击“保存”按钮时,包含修改XML的AJAX post请求被发送到服务器。我使用服务器端的$就功能发送大字符串时,Spring MVC ajax POST请求失败

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,因此字符串我发送给服务器小 - 一切正常。但是,当XML很大时 - 即使我知道我传递了它,我也会得到“HTTP状态400 - 必需的字符串参数'xmlString'不存在”。我能做什么?

+0

你使用什么应用程序服务器? – ragnor

回答

0

这与您的字符串大小无关,而您提到的错误代码是400. 对于长字符串,错误代码为414 - uri太大,而且它提供的GET请求的最大限制为8000个字符。

+0

呃...当我通过短字符串 - 它的工作原理)当我试图通过一个大的失败。那么问题是什么? –

+0

嗨错误代码400来hwen您的请求格式不正确。根据W3,org“由于格式错误,服务器无法理解请求,因此客户端不应该在没有修改的情况下重复请求。”这意味着您的请求在很长一段时间变得不正常时,请查看请求。 –

2

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