同源策略
跨域是为了解决浏览器的安全机制,即不同源的地址之间不能访问资源和操作页面。
前端常用的跨域方案
1.cors
cors需要浏览器和服务器都支持,且cors请求分为简单请求,复杂请求,这里只列举简单请求
简单请求
简单请求需要同时满足几个条件
- 请求的方法必须为,
GET,POST,HEAD中的一种 - 请求头的集合不超过,
- Accept
- Accept-Language
- Content-Language
- Content-type:值必须为
- text/plain
- multipart/form-data
- application/x-www-form-urlencoded中的一个
2.jsonp
原理是创建一个script标签,向浏览器发送请求。浏览器接收到请求之后,将数据包在一个回调函数中传递回来。坏处是只支持GET请求,不太安全。好处是可以兼容ie和请求其他不支持cors的网站
其他
跨域的方案不止cors和jsonp,也可以nginx,websocket等其他技术,这里就不过多赘述