angular - 使用从角度到弹簧的表单数据发布请求
问题描述
我正在尝试使用 Angular 及其 http 库向我的 spring rest api 发送一个发布请求。
目前在邮递员(成功)我以这种方式发送数据:
- 格式为表单数据
- 关键是 reqData(强制)
- 值为 json(必填)
如何通过角度以相同的方式发送数据?
目前,这就是我的数据的样子:
onSignIn(form: NgForm) {
const email = form.value.email;
const password = form.value.password;
const reqData = {
'app_uname': email,
'app_pass': password
};
}
添加更多关于我的后端代码:
我的休息 api 看起来像这样:
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<String> handle(@RequestParam(value = "reqData") String reqData,HttpServletRequest request)
所以我应该发送一个键和值(我不知道打字稿中的哪个数据结构,但在java中它是MultiValueMap),其中键是reqData,值应该是字符串或json对象中的json。
如何将我的 reqData json 转换为 MultiValueMap 格式?
我也尝试过 formData 和 Map :
const formData: FormData = new FormData();
formData.append('reqData', JSON.stringify(reqData));
const map = new Map();
map.set('reqData', reqData);
解决方案
要使用 formdata 将数据发送到服务器,可以这样做
const email = form.value.email;
const password = form.value.password;
const formData: FormData = new FormData();
formData.append("email ", email);
formData.append("password ", password);
// then http post to server
编辑
如果您想以 json 格式提交数据,您需要这样做
const email = form.value.email;
const password = form.value.password;
const reqData = {
'app_uname': email,
'app_pass': password
};
const formData: FormData = new FormData();
formData.append("reqData", JSON.stringify(reqData));
// then http post to server and in the server you need to parse the json string
希望它能解决你的问题。请让我知道这是否解决了您的问题
推荐阅读
- animation - 有没有更好的方法在 swiftui 中实现抖动动画?
- excel - VBA - 如何自动填充到底部,直到最后一个 B 单元格包含数据
- r - R中的条件字符串生成(for循环+ if/else)
- css - 如何减少闪亮输入框内的填充?
- blazor - 没有服务器的 Blazor(非无服务器)
- python-3.x - .h5 模型和 .pb 模型之间的输出值误差很小
- php - 使用 PHP 通过 SSH 运行终端命令返回不同的版本?
- c# - ASP.NET CORE 3.1 如何从 HandleRequirementAsync 重定向
- excel - .Find 不工作和 If 语句基于 .Find 方法的结果。什么表达式可以传递给 .Find 方法?
- sass - 如何在数据中使用 sass 字符串替换:图像字符串?