2017-07-28 7 views
0

プレーンなjavascriptを使用してAJAX呼び出しをSpringコントローラに作成しようとしています。バニラのjavascriptを使用したSpring - POSTパラメータ

@RequestMapping(path = "/updateRoles", method = RequestMethod.POST) 
public String updateRoles(@RequestParam("allowedRoles") String allowedRoles, 
final Map<String, Object> model) { 

    return "services"; 
} 

そして、AJAX呼び出し:

var xhttp; 
if (window.XMLHttpRequest) { 
    // code for modern browsers 
    xhttp = new XMLHttpRequest(); 
} else { 
    // code for IE6, IE5 
    xhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xhttp.open("POST", "/services/updateRoles", true); 
xhttp.setRequestHeader("Content-type", "application/json"); 
xhttp.send({"allowedRoles":allowedRoles}); 

私も

xhttp.send("allowedRoles=" + allowedRoles); 
を試してみました コールは

コントローラ "を提示されていない必須の文字列パラメータ 'allowedRoles'" で失敗します

結果は同じ

+0

あなたが送信されたパラメータを送信していませんリクエストボディ。 –

+0

@ M.Deinumそして、どのようにパラメータを送信しますか? – algiogia

答えて

0

JSONでそれを試してみてください。

//Create JSON data 
var jsonData = {allowedRoles: 'string allowed'}; 
var formattedJsonData = JSON.stringify(jsonData); 
//Send it 
xhttp.send(formattedJsonData); 

必要であれば、あなたはすなわち、jsonDataが正しいことを確認するためにあなたのデータを確認することができます。

console.log(jsonData); 
    console.log(JSON.parse(formattedJsonData)); 
関連する問題