首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Web客户端PUT请求返回403,但Postman请求不返回- Glassfish上的Jersey REST API

Web客户端PUT请求返回403,但Postman请求不返回- Glassfish上的Jersey REST API
EN

Stack Overflow用户
提问于 2020-11-19 22:33:42
回答 1查看 267关注 0票数 1

我正在写一个CRUD应用程序使用泽西和React.js前端的Glassfish 4.0。我的应用程序类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@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;
    }
}

我的CORS过滤器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Provider
@Priority(Priorities.HEADER_DECORATOR)
public class CorsFilter implements ContainerResponseFilter
{

    @Override
    public void filter(ContainerRequestContext requestContext, 
            ContainerResponseContext responseContext) throws IOException 
    {
        responseContext.getHeaders().add(
                "Access-Control-Allow-Origin", "*");
              responseContext.getHeaders().add(
                "Access-Control-Allow-Credentials", "true");
              responseContext.getHeaders().add(
               "Access-Control-Allow-Headers",
               "origin, content-type, accept, authorization, cookie");
              responseContext.getHeaders().add(
                "Access-Control-Allow-Methods", 
                "GET, POST, PUT, DELETE, OPTIONS, HEAD");
    }

}

由我的前端执行的fetch:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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的响应,但上面的fetch给了我一个403。我怀疑这与我的CORS过滤器有关,或者是因为我的浏览器使用PUT发送了一个G_ENABLED_IDPS=google cookie。任何帮助都将不胜感激;我已经试着解决这个问题好几个小时了。

EN

回答 1

Stack Overflow用户

发布于 2020-11-22 09:57:07

Access-Control-Allow-Headers响应头的目的是告诉浏览器允许对请求使用哪些请求头。您拥有的列表如下:origin, content-type, accept, authorization, cookie。但在您的请求中,您正在尝试设置User-Agent标头。如果您删除标题或将其添加到列表中,它应该可以工作。

另请参阅:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64921034

复制
相关文章
如何基于 Swagger 使用 OpenAPI Generator 生成 JMeter 脚本?
作为性能工程师,我们花了大量的时间编写脚本。如果我们能找到一种能自动生成脚本的方法,那将是一个提高的能效的好事情。
高楼Zee
2021/03/16
5.2K0
OpenAPI规范3-Swagger2 的美化使用
本人自己使用的swagger2.0,鉴于颜值和OpenAPI规范,就想体验下,后续再补充各种情况的demo。
软件测试君
2022/01/24
6.6K0
OpenAPI规范3-Swagger2 的美化使用
Java 近期新闻:Gradle 8.0、Maven、Payara 平台、Piranha、Spring Framework
作者 | Michael Redlich 译者 | 张卫滨 策划 | 丁晓昀 OpenJDK 甲骨文的技术顾问成员、Loom 项目的负责人 Ron Pressler 提交了 JEP Draft 8302326,即隐式类和主方法增强(Implicit Classes and Enhanced Main Methods)(预览)。该特性 JEP 提议“改进 Java 语言,从而能够让学生无需了解为大型程序所设计的语言特性,就能编写出第一个程序”。这个 JEP 进一步推进了甲骨文的 Java 语言架构师 Br
深度学习与Python
2023/03/29
1.7K0
Java 近期新闻:Gradle 8.0、Maven、Payara 平台、Piranha、Spring Framework
在 Eclipse 中配置 Grails 工程
配置 GRAILS_HOME,注意一定要配置到 build.xml 所在的文件夹:
四火
2022/07/15
1.1K0
在 Eclipse 中配置 Grails 工程
简洁、高效、灵活:探索 Spring 同级别的编程框架
作为一个Java开发者,Spring框架应该基本上都用过的,由于Spring框架太过于强大,导致我们可能只知道Spring框架,但其实还有很多优秀的框架可以供我们使用,本文将介绍6个和spring框架类似的框架。
索码理
2023/09/23
8880
简洁、高效、灵活:探索 Spring 同级别的编程框架
Spring Boot使用OpenAPI规范
在WEB领域里面,随着前后端分离,后端的HTTP接口便需要去维护一份大而全的Rest API,一个比较靠谱的文档工具是必不可少的。
李鸿坤
2020/10/23
4.1K0
Spring Boot使用OpenAPI规范
Java 框架新贵入驻 TechEmpower Framework Benchmark
出自 Grails 团队的 Java 框架新贵 Micronaut 刚发版就加入了 TechEmpower Framework Benchmark. 最近出炉的 2a8f2912-c4a2-4c32-a576-b1e2e932a906 中已经能看到 Micronaut 的身影了. 下面我们把结果稍微过滤一下, 看看 Micronaut 和一些常见 Java 框架的性能比较:
老码农
2019/03/12
7140
Java 框架新贵入驻 TechEmpower Framework Benchmark
Swagger+knife4j 易于整合SpringBoot的OpenAPI文档生成利器
前端和后端的联调离不开API文档,而手动编写API文档是一项耗时又费力的操作。Swagger正是基于简化API文档的输出的一个优秀的开源框架,通过OpenAPI的规范呈现接口信息,方便的提供测试和联调。这样,如果按照新的开发模式,在开发新版本或者迭代版本的时候,只需要更新Swagger描述文件,就可以自动生成接口文档和客户端服务端代码,做到调用端代码、服务端代码以及接口文档的一致性。
Dream城堡
2022/01/07
1.6K0
Swagger+knife4j 易于整合SpringBoot的OpenAPI文档生成利器
Express 基于 Node.js 平台,快速、开放、极简的 Web 开发框架
初始化目录: npm init 安装 Express: npm install express --save HelloWorld: 创建app.js //导入express const express = require('express') //创建app对象 const app = express() //构建请求 app.get('/',(req, res)=>res.send('hello world')) //配置app监听3000端口 app.listen(3000, ()=>consol
前端小鑫同学
2022/12/24
1K0
2020年你将会选择哪个微服务框架?
截至2020年,Java仍然是构建Web应用程序的最流行的编程语言之一,尽管它必须面对来自Go,Python和TypeScript等新型语言的激烈竞争。
用户1516716
2020/03/05
2.8K0
OpenAPI初探
项目中使用gin组件实现的api接口,总是需要修改代码,又要修改md文档。总想有没有一种办法,能够只写一遍就能完成代码和文档的修改,很快发现了gin-swagger组件,可以通过代码的注释生成文档,但写代码同时写入详细的注释让人发狂。
peakxie
2019/08/29
5.2K0
OpenAPI初探
在 Spring Boot 项目中使用 Swagger 文档
Spring Boot 框架是目前非常流行的微服务框架,我们很多情况下使用它来提供 Rest API。而对于 Rest API 来说很重要的一部分内容就是文档,Swagger 为我们提供了一套通过代码和注解自动生成文档的方法,这一点对于保证 API 文档的及时性将有很大的帮助。本文将使用 Swagger 2 规范的 Springfox 实现来了解如何在 Spring Boot 项目中使用 Swagger,主要包含了如何使用 Swagger 自动生成文档、使用 Swagger 文档以及 Swagger 相关的一些高级配置和注解。
程序员小明
2019/06/03
1.7K0
在 Spring Boot 项目中使用 Swagger 文档
Spring Boot 框架是目前非常流行的微服务框架,我们很多情况下使用它来提供 Rest API。而对于 Rest API 来说很重要的一部分内容就是文档,Swagger 为我们提供了一套通过代码和注解自动生成文档的方法,这一点对于保证 API 文档的及时性将有很大的帮助。本文将使用 Swagger 2 规范的 Springfox 实现来了解如何在 Spring Boot 项目中使用 Swagger,主要包含了如何使用 Swagger 自动生成文档、使用 Swagger 文档以及 Swagger 相关的一些高级配置和注解。
beifengtz
2019/07/30
1.4K0
在 Spring Boot 项目中使用 Swagger 文档
6款国内外好用的API文档工具介绍
从零编写API文档既耗时又复杂,因此大多数企业都依赖API文档工具来简化这些工作。 API文档工具有助于自动化创建和管理文档,并以易于阅读和理解的方式帮助用户去格式化和显示信息,即使对于没有技术背景的用户也能轻松使用。
快递100API
2021/05/17
5.9K1
拥抱 OpenAPI 3: springdoc-openapi 食用指南
使用 springdoc-openapi 可以快速为 springboot 项目生成规范的 API 文档,具体使用步骤如下:
phoenix.xiao
2022/11/11
6.9K0
拥抱 OpenAPI 3: springdoc-openapi 食用指南
Swagger使用总结
自此一个非常方便又简单的swagger-ui集成好了,写完业务逻辑代码可以立马公布restful api给前端调用。
XING辋
2019/03/26
1.1K0
Swagger使用总结
只会用 Spring Boot 创建微服务?那你就 OUT 了,还有这 4 种替代方案!
点击关注公众号,Java干货及时送达 前言 在 Java 和 Kotlin 中, 除了使用Spring Boot创建微服务外,还有很多其他的替代方案。 名称 开发商 Helidon SE 甲骨文 Ktor JetBrains Micronaut Object Computing Quarkus Red Hat Spring Boot Pivotal 本文,基于这些微服务框架,创建了五个服务,并使用Consul的服务发现模式实现服务间的 相互通信。因此,它们形成了异构微服务架构(Heterogeneous
Java技术栈
2022/09/27
6.2K0
只会用 Spring Boot 创建微服务?那你就 OUT 了,还有这 4 种替代方案!
Swagger快速使用
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
鱼找水需要时间
2023/02/16
2010
1. 了解Groovy
最近,对Groovy脚本语言的兴趣越来越多了,刚巧对于java语言比较熟悉,了解和入手Groovy可以说丝毫不困难。
zinyan.com
2022/12/07
1.4K0
1. 了解Groovy
Java近期新闻:Grails 6.0、PrimeFaces 13.0、JUnit 5.10、GraalVM、新的 JEP 草案
甲骨文(Oracle)的软件架构师 Maurizio Cimadamore 已经提交了 JEP Draft 8310626,外部函数和内存 API。该 JEP 提议在经过两轮孵化和三次预览后最终确定该特性:JEP 412,外部函数和内存 API(孵化阶段),在 JDK 17 中交付;JEP 419,外函数与内存 API(第二轮孵化),在 JDK 18 中交付;JEP 424,外部函数和内存 API(预览版),在 JDK 19 中发布;JEP 434,外部函数和内存 API(第二次预览),在 JDK 20 中发布;以及 JEP 442,外部函数和内存 API(第三次预览),将在即将发布的 JDK 21 中发布。自上一个版本发布以来的改进包括:一个新EnableNativeAccess 清单属性,允许可执行 JAR 中的代码在不使用--enableNativeAccess标志的情况下调用受限方法;允许客户端以编程方式构建 C 函数描述符,避免使用特定于平台的常量;改进了对本地内存中可变长度数组的支持;以及支持本地字符串中的多个字符集。
深度学习与Python
2023/09/08
2010
Java近期新闻:Grails 6.0、PrimeFaces 13.0、JUnit 5.10、GraalVM、新的 JEP 草案

相似问题

在libreoffice宏中打开xlsx

12

Python将宏运行到xlsx文件

17

在XLS和XLSX中使用Excel宏

22

将Python或Perl与PHP集成

31

用于添加图表的Perl Excel::Writer::XLSX

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文