跨域的解决方法主要有三种
- 第一种,应该也是最常用的是前端dev-server设置代理
跨域一般是浏览器端才存在的概念,而服务端一般是不存在跨域的,所以可以将请求先发给本地的dev-server,但然后由本地的dev-server代理转发给真正的服务端,从而绕开浏览器的跨域限制。
- 第二种,使用CORS,优点是支持所有类型的HTTP请求;缺点是有可能老版本的浏览器或服务器不支持
CORS主要是配置服务器,设置Access-Control-Allow-Origin响应头
如果要求浏览器向跨域的服务器发送Cookie的话,Access-Control-Allow-Origin不能设为*
- 第三种,使用JSONP,优点是兼容性好,支持老版本的浏览器,并且可以向不支持CORS的网站请求数据;缺点是只支持GET请求。 原理是利用script标签的src属性没有跨域限制来实现的。
另外还可以使用修改window.origin、屏蔽浏览器的安全限制等方式临时解决跨域问题。