做uni-app前端开发时,遇到CORS策略问题:
:8081/#/pages/index/index:1 Access to XMLHttpRequest at 'http://api-remote.xxxx.com'/version/getCurrentVersion' from origin 'http://localhost:8081' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
官网给的解决方案在这里:
https://juejin.cn/post/6844904063855755271#heading-8
但是这个帖子讲的不是很明白,至少刚入前端的我没看懂。。然后发现vue教程中反而解释的非常清楚。由于uni-app也是通过vue-cli创建,因此可以使用同样的解决方案,只需要增加一个文件并修改一行请求代码。可以直接跳到末尾看解决方法
问题原因
CORS即Cross-origin resource sharing,跨域资源共享,这个技术是为了解决AJAX的同源策略影响(需要域名(或IP),协议,端口都相同)。详细介绍参考阮一峰-跨域资源共享 CORS 详解。
简单来说,对于跨域请求和除了GET、HEAD外的同源请求,现代浏览器会自动在请求头中加入一个Origin
字段。Origin字段包含本次请求的协议+域名+端口,如
GET /cors HTTP/1.1
Origin: http://