POSTで通信をしようとしているのですが、
サーバー側でパラメータを受け取れないです。
私の勉強不足なのですが、原因がわからないです。
内容をご確認いただけないでしょうか。
java
1 @ResponseBody 2 @RequestMapping(value = "/testAPI", method = RequestMethod.POST) 3 public void updateInsurance(HttpServletRequest request, HttpServletResponse response) throws IOException{ 4 5 // 処理① 6 logger.info("変数request.getParameter(\"fileName\"):" + request.getParameter("fileName")); 7 8 Enumeration names = request.getParameterNames(); 9 while (names.hasMoreElements()){ 10 String name = (String)names.nextElement(); 11 // 処理② 12 logger.info("パラメータ:" + name); 13 } 14 }
javascript
1function doPost(){ 2 var param = { 3 "fileName": encodeURIComponent(fileName) 4 }; 5 6 var xhr = new XMLHttpRequest(); 7 xhr.open('POST', './API/testAPI', true); 8 xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); 9 xhr.responseType = 'arraybuffer'; 10 xhr.onload = function(e) { 11 // 処理③ 12 alert(this.status); 13 } 14 15 xhr.send(JSON.stringify(param)); 16}
処理①の出力結果は、「 変数request.getParameter("fileName"):null」
処理②は、何も出力されません。(ログ自体出力されないです)
また、処理③の結果は「200」のためサーバーとの通信はできているようです。
想定結果としては、処理①の出力結果にfileNameが出力されると思っているのですが、
上記に記載した通り「null」が出力されてしまっています。
サーバー側の受け取り方、クライアント側の渡し方、どちらが悪いのでしょうか。
それとも、両方でしょうか。。。