cors跨域深刻理解
1.跨域问题只出现在前端和后端不在同一个主机上。前后端在同一个主机上不会出现跨域问题。
2.浏览器的一种自我保护机制,不允许出现本地浏览器ajax异步请求访问127.0.0.1以外的系统,因为浏览器不知道远程系统是不是你的,不是你的系统,浏览器对ajax的保护机制就不允许你访问喽。
3.要想解决跨域问题:就要让浏览器知道这个系统是你的系统啊,怎么让浏览器知道呢?在后台系统的response header上设置一个header,叫Access-Control-Allow-Origin一个header。
下面就是具体怎么实现cors。首先,对于支持cors的浏览器,发送请求时,如果我们观察请求头会发现带有"Origin:http://example.taobao.com" ,该标识用来说明本次请求来自的域。要实现cors,只要在服务端在响应头部加上标识“Access-Control-Allow-Origin:http://example.taobao.com”,这样浏览器发现Access-Control-Allow-Origin和请求来自的域一致,就允许跨域访问资源example.taobao.com的资源了。对应服务端代码:
rundata.getResponse().setHeader("Access-Control-Allow-Origin", "http://example.taobao.com");
4.解决跨域的精髓是什么?
:http response返回给前端的header里包含了允许你访问这个系统的header。
controller上@cros注解的作用就是这个,向response的header里写这个header。
也可以在拦截器里设置这个response返回header,这样所有的返回都添加了这个header。就全局解决了跨域问题
最新文章
- iOS之微信支付
- MMORPG大型游戏设计与开发(服务器 AI 基础接口)
- 如何让一个json文件显示在表格里
- JPA使用入门
- Redis 配置文件
- 滴滴与Uber的竞争分析
- css之滚动条
- velocity整合servlet
- BZOJ 1040 【ZJOI2008】 骑士
- 【jQuery基础学习】04 jQuery中的表格操作及cookie插件的使用
- codeforces 468A. 24 Game 解题报告
- 用Ogre实现《天龙八部》场景中水面(TerrainLiquid)详解
- 解析 this.initialize.apply(this, arguments)
- NPM与调试工具的使用
- Angularjs directive全面解读(1.4.5)
- 《TCP/IP详解》读书笔记
- JSON字符串和JS对象
- Assert中的静态方法
- 一步步搭建Retrofit+RxJava+MVP网络请求框架(一)
- 运行web项目端口占用问题