java - React.js:从JavaSpring-boot后端获取POSTMapping发送请求,但什么也不做
问题描述
我正在创建一个由 React-js 前端、Java Spring-Boot 后端和 SQL 数据库组成的全栈项目。我设置了一组简单的类/接口/控制器,用于获取数据库中的对象列表,以及创建/删除/修改单个对象。
在连接数据库和后端并确认所有控制器请求都正常运行后,我尝试在前端使用它们。GET 请求一切正常,但尝试使用任何需要传递请求正文的请求似乎都不起作用。以下是它是如何下降的:
首先,这是后端的 POSTMapping 请求。我正在使用 Autowired 处理这些请求。
const createNewIS = (e) => {
return fetch("http://localhost:8080/ideas/create", {
method: 'POST',
crossDomain: true,
headers: {
'Accept': 'nology-brainstorm/json',
'Content-Type': 'nology-brainstorm/json',
'API-Key': 'secret'
},
body: JSON.stringify({
"spaceid": 4,
"name": newISName,
"description": newISDesc
})
}).then((nothing) => {
updateNewISPopUp(e);
})
}
其次,这是前端的抓取功能。我尝试在没有 API-Key 标头的情况下运行此函数,没有 .then() 继续第一个子句,也没有将类的键名封装在语音标记中。这些似乎都没有任何效果,结果总是如下:
请求似乎已经发出,body 似乎已经成功通过。但是,当我检查存储其检索对象的数据库或前端中的状态时,新对象不会添加到其中。抱歉,如果解决方案在这里很明显,但是有人知道为什么请求没有正常运行吗?我一直在看这个几个小时没有运气。
解决方案
415 是不支持的媒体类型。这通常与您的 Content-Type 有关
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/415
您正在传递自定义内容类型,因此您还需要在后端控制器上定义它。
@PostMapping(path = "users",
consumes = "nology-brainstorm/json",
produces = "nology-brainstorm/json")
推荐阅读
- spring - Spring reactive - 如何在调用方法中处理 mono.error
- python - keras模型H5在理论上是如何工作的
- jmeter - 带有 Webscoket 的 HTTPS 在 Blazemeter 中不起作用,但适用于 Jmeter 脚本
- javascript - How to get the value of a select option, and use it to query an array, to populate another input
- git - 在 Windows 上将 SourceTree 连接到 AWS CodeCommit
- itfoxtec-identity-saml2 - 无法构建 IdentitySaml2 项目
- java - 尝试读取响应正文时获取服务器响应 405
- mysql - 将多行数据合并到同一行和不同的列中:mysql
- react-native - Facebook登录错误:找不到变量:警报
- javascript - React/Preact:如何暂时避免更新某个组件的 DOM?