什么是跨域
浏览器有一个重要的安全策略,称之为「同源策略」
其中,源=协议+主机+端口源=协议+主机+端口,两个源相同,称之为同源,两个源不同,称之为跨源或跨域
同源策略是指,若页面的源和页面运行过程中加载的源不一致时,出于安全考虑,浏览器会对跨域的资源访问进行一些限制
跨域请求出现错误的条件:
浏览器同源策略 && 请求类型是ajax类型
解决方案
- 前端用JSONP方式去发请求(jsonp不是ajax请求)
- 后端写代码(CORS)在响应中添加必要的响应头,让响应回来之后浏览器不报错
- 代理转发
代理服务和前端服务之间由于协议域名端口三者统一不存在跨域问题,可以直接发送请求
代理服务和后端服务之间由于并不经过浏览器没有同源策略的限制,可以直接发送请求