当前位置: 首页 > 知识库问答 >
问题:

应用 CORS 策略 Springboot 后的空响应

滕星纬
2023-03-14

当我不接触任何关于CORS的东西时,浏览器会向我显示常见错误

CORS策略阻止了从源http://localhost:3000获取http://localhost:8080/denodo-testwebapp/tags的访问

但与此同时,在邮递员上做一个GET请愿书,我用所有数据来回复

  GET http://localhost:8080/test-webapp/tags/

Response: [
    {
        "name": "Tag1"
    },
    {
        "name": "Tag12"
    },
    {
        "name": "Tag123"
    }
]

但当我试图通过添加以下代码禁用CORS时:

@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class MyConfiguration implements Filter {

    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {

        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;

        response.setHeader("Access-control-Allow-Origin", "http://localhost:3000");
        response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, HEAD,OPTIONS, DELETE");
        response.setHeader("Access-Control-Allow-Headers", "Accept, Accept-Language, Authorization, Cache-Control, Content-Language, Content-Type, X-Requested-With");
        response.setHeader("Access-Control-Exposed-Headers", "Accept-Ranges, Access-Control-Allow-Credentials, Access-Control-Allow-Origin, Cache-Control, Content-Language, Content-Length, Content-Type, Date, ETag, Expires, Last-Modified, Location, Pragma, Server, Transfer-Encoding, Vary, WWW-Authenticate");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Credentials", "true");

    }

    public void init(FilterConfig filterConfig) {
    }

    public void destroy() {
    }

}

我不再有浏览器错误,但现在,在postman上做同样的GET请愿书,响应是空的,我不完全知道这里插入了什么

共有1个答案

狄晟睿
2023-03-14

您需要通过调用链沿过滤器链转发请求/响应对。doFilter(请求、响应)

 类似资料:
  • 我已经创建了p3p文件,将它们放在w3c文件夹中,但fiddler2仍然返回没有p3p的集cookie? iis上的Wordpress站点... 试图让它返回cookies集 我知道这是旧东西,但客户想要它。 我错过了什么?

  • 我正在构建一个供iOS/Android应用程序使用的API。该应用程序使用JSON Web Token来验证用户。我在尝试从本机应用程序与API对话时遇到了CORS问题。所以我为所有来源添加了CORS头(只在以< code>/api/开头的URL上)。它现在工作正常,但我想知道我所做的是否不是一个潜在的漏洞? 我应该允许所有的起源吗?如果API要被原生应用请求,我有办法提前知道原生主机吗? 我挺迷

  • 我试图生成一个简单的axios请求,如下所示(我正在使用vue.js): 但我得到以下错误: 我已经尝试过添加下面的头,但仍然不起作用 但是如果我尝试通过浏览器发出请求(简单地通过复制和粘贴url),一切都很好。 有人知道怎么帮我吗?非常感谢!

  • 在 Service Worker 环境下,可以通过 Fetch API 发送网络请求获取资源,也可以通过 Cache API、IndexedDB 等本地缓存中获取缓存资源,甚至可以在 Service Worker 直接生成一个 Response 对象,以上这些都属于资源响应的来源。资源请求响应策略的作用,就是用来解决响应的资源从哪里来的问题。 接下来将介绍一些常用的策略及其简易实现,这些给出的策略

  • 我已经创建了一个应用程序,使用角和springboot进行Spring安全的基本身份验证,但我得到401错误...我是springboot新手 “从源'http://localhost:4200'访问'http://localhost:8080/hello-world/path-variable/MSD'的XMLHttpRequest已被CORS策略阻止:对预检请求的响应未通过访问控制检查:它没有

  • 我了解了Firebase托管的标头配置,所以我这样做了: 在app中,在didChangeDependencies中有一个简单的firebase初始化,带有所需的数据。然后firebase auth . instance . signinwithemailandpassword(...)关于index.html的一段关于火垒的话: 我在Chrome中测试过很多次,总是失败。只有在localhost