1、如果服务端是Java开发的,添加如下设置允许跨域即可,但是这样做是允许所有域名都可以访问,不够安全。

response.setHeader("Access-Control-Allow-Origin","*");

2、为保证安全性,可以只添加部分域名允许访问,添加位置可以在下面三处任选一个。

(1)可以在过滤器的filter的dofilter()方法种设置。

(2)可以在servlet的get或者post方法里面设置。

(3)可以放在访问的jsp页面第一行。

3、

在此用第一种方法,注意web.xml配置过滤器(filter)。

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);

}

在此用第二种方法,可以在servlet的get或者post方法里面设置。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html;charset=UTF-8");//* 表示允许任何域名跨域访问

response.setHeader("Access-Control-Allow-Origin", "*");//指定特定域名可以访问

response.setHeader("Access-Control-Allow-Origin", "http:localhost:8080/");//数据

List studentList =getStudentList();

JSONArray jsonArray=JSONArray.fromObject(studentList);

String result=jsonArray.toString();//前端传过来的回调函数名称

String callback = request.getParameter("callback");//用回调函数名称包裹返回数据,这样,返回数据就作为回调函数的参数传回去了

result = callback + "(" + result + ")";

response.getWriter().write(result);

}

(3)可以放在访问的jsp页面第一行

问题:

关于interceptor拦截器跨域response.addHeader("Access-Control-Allow-Origin", "*");不生效的情况

主要就是最上面的这行代码,当设置为“*”号的时候,我这边没有生效。

然后用的是,先取到发送过来的origin,然后将其放入header中。

String origin = request.getHeader("Origin");

response.setHeader("Access-Control-Allow-Origin", origin);

这样就成功了。

java设置access-allow_Java中设置多个Access-Control-Allow-Origin跨域访问相关推荐

  1. 关于flex开发中的跨域访问问题

    1,一次偶然的机会碰到这个问题了,flex有跨域访问问题,但是,imgage.soure='其它域名地址是可以的'.能显示出来,为什么? 不是说有跨越访问的问题么,其实flash说的跨域访问问题,不是 ...

  2. java跨域解析json数据_java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据...

    在开发的过程中,有时候我们需要设计一个数据接口.有时候呢,数据接口和Web服务器又不在一起,所以就有跨域访问的问题. 第一步:简单的设计一个数据接口. 数据接口,听起来高大上,其实呢就是一个简单的Se ...

  3. 转载 - 通过设置P3P头来实现跨域访问COOKIE

    作者:老王 网上看了别人介绍的一片文章,说使用P3P可以完成跨域COOKIE操作,感觉很COOL,不过没有提供源代码,我胡乱写了一下,大家看看. 实际工作中,类似这样的要求很多,比如说,我们有两个域名 ...

  4. ajax 设置Access-Control-Allow-Origin实现跨域访问

    版权声明:本文为博主原创文章,未经博主允许不得转载.如需转载可私信或关注公众号fdipzone-idea与我联系. https://blog.csdn.net/fdipzone/article/det ...

  5. php accesscontrolalloworigin,设置Access-Control-Allow-Origin实现跨域访问

    这篇文章主要介绍了Ajax 设置Access-Control-Allow-Origin实现跨域访问,非常不错,具有参考借鉴价值,需要的朋友可以参考下 ajax跨域访问是一个老问题了,解决方法很多,比较 ...

  6. Chrome浏览器设置跨域访问【新旧版本两种方式设置】

    一般我们在进行前后分离的项目 webapp 开发,或者 H5 移动 App 开发时,我们会使用 PC 端浏览器进行开发调试.但默认情况下 Ajax 请求无法跨域访问,请求时会报如下错误: XMLHtt ...

  7. PHP接口允许ajax跨域访问设置方法(亲测)

    背景 H5开发中使用ajax调用数据接口, 如果接口文件不在同域名下会提示跨域错误(No 'Access-Control-Allow-Origin' header is present on the ...

  8. Vue之通过代理设置跨域访问

    我们使用脚手架创建的项目,可以在config项目中看到 其中我们打开index.js文件 'use strict' // Template version: 1.3.1 // see http://v ...

  9. 允许跨域访问_PHP设置多域名允许跨域访问

    php中文网最新课程 每日17点准时技术干货分享 针对 PHP 语言设置多域名允许跨域访问 服务器变量: 服务器变量存储在 $_SERVER 数组中,在这个数组中有一个特殊的键值:HTTP_ORIGI ...

最新文章

  1. C语言:5行代码解决 L1-045 宇宙无敌大招呼 (5分)
  2. Node.js Event loop 图解
  3. kafka介绍和集群环境搭建
  4. gdb调试程序函数名为问号,什么原因?step by step解决方案
  5. java (Eclipse)连接MySQL数据库
  6. 限时下载 | 132G编程资料:Python、JAVA、C,C++、机器人编程、PLC,入门到精通~
  7. 2021第十二届蓝桥杯省赛B组原题答案及总结
  8. 单龙芯3A3000-7A1000PMON研究学习-(30)撸起袖子干-再来一杯代码11-内存初始化3-mc_init
  9. 公路通用复化辛普森公式匝道点位坐标计算4800源程序
  10. chrome浏览器如何设置黑色背景
  11. 格拉姆矩阵(Gram matrix)详细解读
  12. 计算机专业面试 英文,计算机专业面试英文自我介绍
  13. matlab调用CVX工具包
  14. 微信旧岛小程序章节目录
  15. 虚拟屏幕与云计算————微软亚洲研究院
  16. wpt eclipse 使用指南
  17. 通过cib.xml重新启动pacemaker
  18. 部署SDN控制器对接OVS网元实现转控分离实战 附ODL控制器
  19. Python中try 中有return,finally照样执行
  20. 最快的排序算法是什么

热门文章

  1. 通过IDM工具高速下载百度云大文件的方法
  2. Python使用mechanize模拟浏览器
  3. 使MFC窗口的最大化和最小化按钮消失
  4. 泰拉瑞亚12怎么远程连接服务器,泰拉瑞亚怎么远程联机
  5. 复选框(checkbox)积累
  6. 【零代码爬虫】如何使用webscraper插件爬取数据,以淘宝网为例
  7. 双非硕士 | 0实习 | 1个月上岸深信服售前产品经理提前批
  8. iOS中图形图像处理第一部分:位图图像原图修改
  9. 自学考试计算机等级考试,计算机等级考试报名到了,计算机自学考试要求考吗?...
  10. 远程访问服务器tensorboard