Spring - 使用vanilla javascript的POST参数

时间:2017-07-28 09:02:47

标签: javascript ajax spring

我试图使用普通的javascript向Spring控制器进行AJAX调用。 调用失败,其中包含"必需字符串参数' allowedRoles'不存在"

控制器:

@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);

但结果是一样的

1 个答案:

答案 0 :(得分: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));