2013-10-11 34 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 - 指出的方向)))