我正在JavaEE中开发一个REST API,并在ReactJS中使用此API开发一个客户端。
当我使用postman时,API工作得很好,但是当我使用JS中的fetch方法通过客户端发布JSON信息时,我得到了一个415错误:
我的浏览器控制台不支持的媒体类型。
对于API,我使用Jersey处理请求,Hibernate作为ORM。我有genson依赖,正如我所说,一切都工作得很好与 Postman 。在发送之前我也检查了JSON.stringify()
的结果,它看起来很好。
另外,在我的服务器的控制台,我得到这个错误,每次我试图张贴任何东西:
GRAVE:未找到Java类模型、用户和Java类型类模型、用户和MIME媒体类型application/octet-stream的消息正文读取器。
我检查并仔细检查了所有内容,我发送了正确的头部,浏览器将请求识别为“application/json”内容类型,但就像我的API仍然不接受它,或者将其作为application/octet-stream媒体类型接收。
下面是执行fetch的方法:
signIn(){
console.log(JSON.stringify(this.state));
fetch('http://localhost:8080/P52/users', {
method: 'POST',
body: JSON.stringify(this.state),
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
}).then(res => {
return res.json();
}).catch(err=>err)
}
字符串
API中接收数据的方法:
@POST
@Consumes(MediaType.APPLICATION_JSON)
public User createUser(User u){
return UserController.createUser(u);
}
型
控制器只需要创建一个User类的新示例,以在User模型类中运行以下代码:
public User(User u){
this.id = u.getId();
this.pseudo = u.getPseudo();
this.firstname = u.getFirstname();
this.lastname = u.getLastname();
Session session = (Session)HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(this);
session.getTransaction().commit();
session.close();
}
型
如果任何人有我的问题的答案或已经面临它,请让我知道,所以我可以最终推进这个项目。
1条答案
按热度按时间baubqpgj1#
415不支持的媒体类型(https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/415)
试着改变
字符串
至
型