2017-09-01 5 views
2

を処理しませんクライアント:Spring MVCのコントローラは、私は、サーバー側で、次のコントローラメソッドを持っている純粋なAJAX

1)jQueryの経由:

 $.ajax({ 
      type: "POST", 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'text', 
      url: "/templates/test", 
      data: strList, 
      success: function (result) { 
       alert(result.responseText); 
      }, 
     }); 

- うまくいきます。コントローラが要求を処理します。純粋なAJAX経由

2):

 var myReq = new XMLHttpRequest(); 
     myReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
     myReq.open("POST", "/templates/test", false); 
     myReq.responseType = 'text'; 
     myReq.send(strList); 

- 動作しません。コントローラが要求を処理しません。メソッドTestURLはまったく呼び出されません。コントローラで処理できるようにするための2番目のリクエストを修正する手助けをしてもらえますか?それとも右の春バージョンをお勧めしますか?私の春バージョンは4.3.7です。

P.S.次のコードはうまくいきますが、それは私が望むものではありません。

コントローラ:

@RequestMapping(value = {"/templates/test"}, method = RequestMethod.POST) // , consumes = "application/json" 
@ResponseBody 
public String TestURL(@RequestBody String testString, 
         Model model, 
         Locale locale) { 
    return testString; 
} 

UI:

var myReq = new XMLHttpRequest(); 
       //myReq.setRequestHeader("Content-Type", "application/json; charset=utf-8"); 
       myReq.open("POST", "/templates/test", false); 
       myReq.send("aaaa"); 

答えて

0

は問題が簡単だった:純粋なAJAXリクエストが間違っている私は、{文字列}をリストに解析する必要があります。オープン要求の前にsetRequestHeaderを呼び出すことはできません。これ以外にも、call responseTypeの場合は、asyncがtrueである必要があります。

関連する問題