angular - Angular 和 Spring MVC - Post 方法的问题 - 415 不受支持的媒体
问题描述
我有以下 Spring API:
@CrossOrigin(origins = "http://localhost:4200", allowCredentials = "true", maxAge = 3600)
@RequestMapping(value = "/seanPost", method = RequestMethod.POST, headers = "Content-Type=application/json")
public JSONObject post(@RequestBody TrackFileStatusFindForm form, HttpServletRequest request ) {
当我使用邮递员对其进行测试时,它工作正常。
在我的测试 Angular 应用程序中,我通常会收到错误 Error 415--Unsupported Media Type。我注意到 angular 将 Content-Type 设置为 text/plain 而 Postman 设置 Content-Type: application/json
我尝试在 Angular 中设置标头,如下所示,但随后出现 CORS 问题阻止请求,并且在开发工具中出现 401 未授权错误。
options = {
headers: new HttpHeaders()
.set('Content-Type', 'application/json')
};
onSubmit() {
this.http.post(this.APP_URL + '/s/seanPost/', JSON.stringify(this.model), this.options)
.subscribe(
data => {
this.postId = data;
console.log(this.postId);
},
error => {
console.log('Error occured', error);
}
)
}
我尝试将 CORS 过滤器添加到 SpringMVCConfig
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedMethods("GET", "POST", "PUT", "DELETE", "HEAD", "OPTIONS")
.allowedOrigins("http://localhost:4200")
.allowedHeaders("Authorization", "Cache-Control", "Content-Type", "Accept", "X-Requested-With", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Origin")
.exposedHeaders("Access-Control-Expose-Headers", "Authorization", "Cache-Control", "Content-Type", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Origin");
}
但这似乎没有帮助。
如果有帮助,REST URL 是 https。
谢谢
解决方案
推荐阅读
- python - 将最大数字放在列表的第一位时未给出正确答案
- reactjs - React - 有条件的父组件
- python-3.x - TheGuardian API - 脚本崩溃
- postgresql - 创建并写入数据库 JDBC PySpark
- r - 如何按顺序按组对值求和
- git - 我怎样才能更新 git?
- java - 如何从 WebView 中提取 html 代码并将其放入 TextView?
- typescript - TypeScript:函数类型派生,为什么类型d为真?
- javascript - undefined 不是对象(评估 '_react.React.Component')
- python - 为 np.array 分配较大的值