Java中设置多个Access-Control-Allow-Origin跨域访问

这篇具有很好参考价值的文章主要介绍了Java中设置多个Access-Control-Allow-Origin跨域访问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、如果服务端是Java开发的,添加如下设置允许跨域即可,但是这样做是允许所有域名都可以访问,不够安全。
response.setHeader(“Access-Control-Allow-Origin”,"*");
2、为保证安全性,可以只添加部分域名允许访问可以在过滤器的filter的dofilter()方法种设置。

public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
        // 将ServletResponse转换为HttpServletResponse
        HttpServletResponse httpResponse = (HttpServletResponse) res;
        // 如果不是80端口,需要将端口加上,如果是集群,则用Nginx的地址,同理不是80端口要加上端口
    String []  allowDomain= {"http://www.baidu.com","http://123.456.789.10","http://123.16.12.23:8080"};
    Set allowedOrigins= new HashSet(Arrays.asList(allowDomain));
    String originHeader=((HttpServletRequest) req).getHeader("Origin");
    if (allowedOrigins.contains(originHeader)){
        httpResponse.setHeader("Access-Control-Allow-Origin", originHeader);
            httpResponse.setContentType("application/json;charset=UTF-8");
            httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
            httpResponse.setHeader("Access-Control-Max-Age", "3600");
            httpResponse.setHeader("Access-Control-Allow-Headers", "Content-Type,Access-Token");
            // 如果要把Cookie发到服务器,需要指定Access-Control-Allow-Credentials字段为true
            httpResponse.setHeader("Access-Control-Allow-Credentials", "true");                                
            httpResponse.setHeader("Access-Control-Expose-Headers", "*");        
        }        
        chain.doFilter(req, res);

 

通过定义字符串数组 String []  allowDomain= {"http://www.baidu.com","http://123.456.789.10","http://123.16.12.23:8080"};来指定允许的域
 文章来源地址https://www.toymoban.com/news/detail-622658.html

到了这里,关于Java中设置多个Access-Control-Allow-Origin跨域访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx配置跨域请求Access-Control-Allow-Origin * 详解

    前言 当出现403跨域错误的时候  No \\\'Access-Control-Allow-Origin\\\' header is present on the requested resource ,需要给Nginx服务器配置响应的header参数: 一、 解决方案 只需要在Nginx的配置文件中配置以下参数: 上面配置代码即可解决问题了,不想深入研究的,看到这里就可以啦=-= 二、 解释

    2024年02月22日
    浏览(31)
  • Access-Control-Allow-Origin跨域问题,使用Nginx配置来解决

    前提环境:在A服务器,调用B服务器的资源,报错出现找不到请求头Access-Control-Allow-Origin,输入跨域问题, 需要使用配置nginx来处理 例如:A服务器是liunx系统部署了一个java程序,B服务器是本地服务器,A服务器需要请求访问B服务器的资源,可以用nginx代理来请求到B服务器的资

    2024年02月06日
    浏览(31)
  • vue中解决ajax跨域问题(no “access-control-allow-origin”)

    跨域是是因为浏览器的同源策略限制,是浏览器的一种安全机制,服务端之间是不存在跨域的。 所谓同源指的是两个页面具有相同的协议、主机和端口,三者有任一不相同即会产生跨域。 常见的跨域解决方法有 cors 这个需要由后端在响应头上配置 jsonp 借助script中的标签src,

    2024年02月10日
    浏览(27)
  • nginx教程:配置项add_header Access-Control-Allow-Origin *的含义

    使用 add_header 指令来添加 Access-Control-Allow-Origin 头部,以允许跨域访问。具体来说, add_header Access-Control-Allow-Origin *; 表示将在响应中添加一个名为 Access-Control-Allow-Origin 的头部,并将其值设置为 * ,表示允许来自任何域的跨域请求。 这个配置对于处理跨域请求非常有用,但需

    2024年02月06日
    浏览(31)
  • 前后端分离项目跨域问题No ‘Access-Control-Allow-Origin‘解决方案

    一.问题背景 前后端分离项目跨域问题,浏览器控制台报错: No \\\'Access-Control-Allow-Origin\\\' header is present on the requested resource. 请求方法为OPTIONS,状态值为302或403。 本文解决常见的CORS跨域问题,以及,集成CAS 5.3单点登录内嵌页面时,发送复杂请求产生的跨域问题。 二.解决方案

    2024年02月02日
    浏览(38)
  • 解决跨域问题:Access to XMLHttpRequest at ‘http://localhost:8080/xxx‘ No ‘Access-Control-Allow-Origin‘ head

    当我实现前后端分离的时候,遇到了这个问题: Access to XMLHttpRequest at ‘http://localhost:8080/xxx’ from origin ‘http://localhost:63342’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. 后端响应没有带上“ access-control-allow-origin”和“ access-control-

    2024年02月11日
    浏览(32)
  • 跨域问题记录:has been blocked by CORS policy_ The ‘Access-Control-Allow-Origin‘

    has been blocked by CORS policy: The ‘Access-Control-Allow-Origin’ 跨域:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对 javascript 施加的安全限制。 同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域(重点:浏览器产生了跨

    2024年02月16日
    浏览(28)
  • gateway网关导致多重跨域问题The ‘Access-Control-Allow-Origin‘ header contains multiple values

    F12控制台报错:Access to XMLHttpRequest at \\\'XXX from origin \\\' http://localhost:8001\\\' has been blocked by CORS policy: The \\\'Access-Control-Allow-Origin\\\' header contains multiple values \\\' http://localhost:8001, http://localhost:8001\\\', but only one is allowed. 实际后台请求成功了,但是还是显示报错然后发现出现重复headers,标头只能

    2024年02月08日
    浏览(70)
  • 解决前后端跨域报错:has been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘

    来自一个IP端口的页面(前端项目),要访问另一个IP端口的资源(springboot请求接口),会产生跨域访问。

    2024年02月11日
    浏览(30)
  • No ‘Access-Control-Allow-Origin‘ header is present on the requested resource关于vue跨域问题

            浏览器为了安全考虑,有一个最基本的安全策略,即同源策略。         同源策略规定:浏览器在解析Ajax请求时,要求浏览器的路径与Ajax的请求的路径必须满足三个要求,即请求的协议、域名、端口号都相同,满足同源策略,可以访问服务器,否则,只要有一个不

    2024年02月08日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包