最近在写一个vue-cli搭建的博客,本地测试的时候vue-cli是跑在node.js上的,而数据要从apache得到,由于node.js监听8080,apache监听80,端口不一致,导致出现跨域请求,浏览器报错:
XMLHttpRequest cannot load http://XXXXXXXXX. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http: ' is therefore not allowed access.
跨域请求的问题困扰了一下午,到处查资料后找到了最简单的解决方案,其实跨域请求解决起来很简单。
最常用的两种方法:jsonp和CORS
-
jsonp唯一的优点是支持某些上古浏览器(听说还有人用TMD-------IE5.0,6.0),具体原理和用法可以参照文章——jsonp原理详解——终于搞清楚jsonp是啥了,写的非常详细。
-
CORS是W3C制定的跨域请求的规范,非常强大,但是某些上古浏览器不支持,具体原理请查看文章——Access-Control-Allow- 设置 跨域资源共享 CORS 详解
真