一、什么是跨域以及它产生的原因;
浏览器出于安全考虑,有同源策略:如果请求的协议、域名或者端口有一个不同就是跨域, 请求会失败,浏览器会将响应拦截,并抛出错误。
二、跨域的常用解决方案;
1、表单提交:只用于get请求;
2、JSONP:get请求,注册全局函数作为回调;
3、CORS: 浏览器对跨域复杂的请求(请求头带了自定义参数、请求方法不是get/head/post之一、content-type不符合默认,上面三个请求不满足任意一个),会有options预检请求;解决方法是:服务端设置响应头,配置可允许访问的域名、方法以及请求头参数;
4、前端配置代理: Nginx、本地服务proxy;
5、postMessage: 常用于嵌入网页之间的信息交互;
6、document.domian: 网页间的通信,前提是两个网页二级域名相同才行;