javascript - 如何使用 JavaScript XMLHttpRequest 将多个参数传递给@RequestBody
问题描述
我有那个 POST 方法:
function saveSchemaInDatabase(schemaName) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
};
xhttp.open("POST", "/user/saveSchemaInDatabase", true);
xhttp.send(schemaName);
}
我正在以这种方式在我的控制器中捕捉到那张照片:
@PostMapping(path = { "/user/saveSchemaInDatabase" })
public String saveSchemaInDatabase(@RequestBody String schemaName) {
return "redirect:/user";
}
有人可以告诉我如何向该控制器发送多个参数吗?例如我想要这样的东西:
//shoot
function saveSchemaInDatabase(schemaName, diagramJson) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
};
xhttp.open("POST", "/user/saveSchemaInDatabase", true);
xhttp.send(schemaName, diagramJson);
}
//catch
@PostMapping(path = { "/user/saveSchemaInDatabase" })
public String saveSchemaInDatabase(@RequestBody String schemaName, @RequestBody String diagramJson) {
return "redirect:/user";
}
我希望你知道我的意思。我的方法当然行不通。出现错误 400。
有人能帮我吗?我受够了 :(
解决方案
您可以创建 FormData 对象并在其中添加任意数量的值
var data = new FormData();
data.append("email", "eve.holt@reqres.in");
data.append("password", "pistol");
然后将此 formData 对象发送到 post 请求
像这样
xhttp.send(data);
推荐阅读
- javascript - JavaScript 延迟倒计时
- python - 由于gevent导致heroku应用程序错误
- amazon-web-services - Connect to AWS Lighsail instance on port 9200 from AWS Lambda
- android - Publishing last tweet with twitter4j library - where exactly AsyncTask should be implemented?
- android - 使用android在SQLite数据库表中使用WHERE子句检索值
- c++ - What is zero overhead principle in C++? Examples?
- javascript - Negative Lookahead with multiple conditions
- javascript - Why am I not able to use fontawesome unicode icons on canvas?
- google-chrome - How to remove ssl certificates from the "trusted root certification authorities" under google chrome
- python - SqlAlchemy One-to-Many, only makes one-to-one