【发布时间】:2019-05-11 20:09:19
【问题描述】:
我有以下设置:
我的控制器:
@RequestMapping("/project")
@RestController
public class ProjectController {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
ProjectService projectService;
@CrossOrigin
@PostMapping(value = "/createProject")
public ResponseEntity createProject(@RequestBody ProjectDto projectJsonString) {
return ResponseEntity.ok(HttpStatus.OK);
}
}
在我的.service.ts:
this.http.post('http://localhost:8080/project/createProject', JSON.stringify(project)).
subscribe( (res) => {
this.logger.info('Response: ' + res);
});
我的 Dto:
public class ProjectDto {
private String projectName;
private String projectNumber;
private String projectArea;
private String managerName;
private String managerShorthand;
}
但是当我将应用程序构建到 jar 文件并执行它时,执行 api-call 时出现以下错误:
HttpErrorResponse {headers: HttpHeaders, status: 415, statusText: "OK", url: "http://localhost:8080/project/createProject", ok: false, …}
error:
error: "Unsupported Media Type"
message: "Content type 'text/plain;charset=UTF-8' not supported"
path: "/project/createProject"
status: 415
timestamp: "2018-12-10T21:41:26.036+0000"
当我curl 它时也会发生同样的事情。谁能告诉我我做错了什么?
【问题讨论】:
-
网址中的“createProject”是什么?我没有看到映射。只需使用localhost:8080/project
-
@Lemmy 对不起,我看到我的课程仍然包含该 url 的 const,我会更新它。这是我的方法的映射器 - 我看到了第一个问题,我使用
name而不是value,谢谢! -
我明白这一点,但我是说你没有 createProject 的映射。使用值而不是名称。见docs.spring.io/spring-framework/docs/current/javadoc-api/org/…
-
删除 stringify 因为你必须发送 json
标签: angular maven spring-boot