Java Web客户端PUT请求返回403,但邮递员请求未返回-Glassfish上的Jersey REST API
我正在使用Jersey和Glassfish 4.0编写一个CRUD应用程序,前端带有React.js。我的申请类别:Java Web客户端PUT请求返回403,但邮递员请求未返回-Glassfish上的Jersey REST API,java,glassfish,jersey-2.0,Java,Glassfish,Jersey 2.0,我正在使用Jersey和Glassfish 4.0编写一个CRUD应用程序,前端带有React.js。我的申请类别: @ApplicationPath("API") public class AppServ extends Application { @Override public Set<Class<?>> getClasses() { Set<Class<?>> classes =
@ApplicationPath("API")
public class AppServ extends Application
{
@Override
public Set<Class<?>> getClasses()
{
Set<Class<?>> classes = new HashSet<>();
classes.add(RestRoot.class);
classes.add(JacksonFeature.class);
return classes;
}
@Override
public Set<Object> getSingletons()
{
Set<Object> out = new HashSet<>();
out.add(new CorsFilter());
return out;
}
}
由我的前端执行的提取:
fetch("MY_SERVER_IP:8080/FitAppBackend/API/food", {
method: 'PUT',
credentials: 'include',
headers: {
'Accept': '*/*',
'Content-Type': 'application/json',
'User-Agent': ''
},
body: JSON.stringify({
name: this.state.fName,
cals: this.state.cals,
prot: this.state.prot,
carbs: this.state.carbs,
fat: this.state.fat
})
});
当我用Postman测试API时,我得到一个204响应,但上面的获取给我一个403响应。我怀疑这与我的CORS过滤器有关,或者与启用G_的_IDPS=google cookie与我的浏览器发送的PUT有关。任何帮助都将不胜感激;我已经尝试了几个小时来解决这个问题。访问控制允许标头响应标头的目的是告诉浏览器允许请求使用哪些请求标头。您拥有的列表如下:
来源、内容类型、接受、授权、cookie
。但是在您的请求中,您正试图设置用户代理
头。如果删除标题或将其添加到列表中,它应该可以工作
另请参见:
来源、内容类型、接受、授权、cookie
。但是在您的请求中,您正试图设置用户代理
头。如果删除标题或将其添加到列表中,它应该可以工作
另请参见:
fetch("MY_SERVER_IP:8080/FitAppBackend/API/food", {
method: 'PUT',
credentials: 'include',
headers: {
'Accept': '*/*',
'Content-Type': 'application/json',
'User-Agent': ''
},
body: JSON.stringify({
name: this.state.fName,
cals: this.state.cals,
prot: this.state.prot,
carbs: this.state.carbs,
fat: this.state.fat
})
});