首页 > 代码库 > Java服务端用CORS方法解决浏览器跨域问题
Java服务端用CORS方法解决浏览器跨域问题
跨域问题简单来说,就是浏览器访问a.com时,a.com中的javascript,想要访问b.com的资源。
浏览器从安全角度考虑限制了这种行为。所以访问失败了。
解决方案主要有两种:
1.JSONP
2.CORS
JSONP
JSONP方案是将数据放在服务端的javascript脚本中,请求这个javascript。由于浏览器不限制javascript的跨域访问,因此服务端只要把数据放在这个伪javascript中就可以了。需要服务端定义好存有JSON数据的javascript脚本。
CORS
CORS是服务端通过响应请求中的ORIGIN头,设置Access-Control-Allow-Origin头,指定允许跨域的域名来允许跨域访问的。
浏览器在请求中带一个ORIGIN的头:
服务端如果允许这个Origin的域名访问本站点,那么在返回的http Response头中加上一个Access-Control-Allow-Origin,它的值包含请求中Origin带的域名。那么浏览器就可以访问服务器的Response。应答如下:
修改代码很简单,只要在response中加入Access-Control-Allow-Origin头部就行。
private static void responseCORS(HttpServletResponse response) { response.addHeader("Access-Control-Allow-Origin", "*"); response.addHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); response.addHeader("Access-Control-Allow-Headers", "Origin, Accept, Accept-Language, Content-Language, Content-Type"); }
Java服务端用CORS方法解决浏览器跨域问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。