使用Java如何解决跨域问题
本篇内容主要讲解“使用Java如何解决跨域问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“使用Java如何解决跨域问题”吧!
在大东等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、网站设计 网站设计制作按需制作网站,公司网站建设,企业网站建设,成都品牌网站建设,全网整合营销推广,外贸营销网站建设,大东网站建设费用合理。
跨域问题
现在绝大多数公司的项目都是前后端分离的,前后端分离后势必会遇到跨域问题。如下图
继续debug发现,reponse为undefined,提示消息为Network Error。
所以当你和前端联调的时候一直请求失败,报网络错误,一般情况下是后端没有做跨域配置。
注意此时并不是后端没有收到请求,而是收到请求了,也返回结果了,但是浏览器将结果拦截了,并且报错。
同源策略
那么浏览器为什么会报错呢?
因为浏览器基于安全考虑而引入的同源策略
当协议+域名+端口三者都相同时,才不会产生跨域问题,即同源。此时才能读取到服务端的响应
当前url | 请求url | 是否跨域 |
---|---|---|
https://www.javashitang.com | http://www.javashitang.com | 是,协议不同 |
https://www.javashitang.com | http://book.javashitang.com | 是,域名不同 |
https://www.javashitang.com | http://www.javashitang.com:8000 | 是,端口不同 |
为什么要有同源策略呢?
当然是为了安全起见,举个例子,以银行转账为例,看看你的钱是怎么没的
这就是著名的CSRF攻击(跨站请求伪造,当然还有很多其他方式),还有如果第5步不对请求的来源进行校验,那么你的钱已经被转走了
html页面中的如下三个标签是允许跨域加载资源的
如何解决跨域
虽然同源策略保证了安全,但一些合理的用途也会受到影响。解决跨域的方式有很多种,简单介绍2个
JSONP
JSONP主要是利用