uniapp跨域问题如何解决?
在使用uniapp开发过程中遇到跨域问题,具体表现为请求接口时出现"No ‘Access-Control-Allow-Origin’ header"错误。请问应该如何解决这个问题?尝试过在manifest.json中配置代理,但似乎没有效果。有没有更完善的解决方案?需要区分开发环境和生产环境的不同处理方式吗?
2 回复
在uniapp的manifest.json中配置代理,或在服务端设置CORS允许跨域。H5端还可以用nginx反向代理。
在 UniApp 中,跨域问题主要出现在开发阶段的浏览器调试(H5 平台)中,因为浏览器会强制遵循同源策略。以下是解决方案:
1. 配置 manifest.json 文件(仅开发阶段有效)
在 H5 平台的开发配置中添加代理,避免浏览器跨域限制:
{
"h5": {
"devServer": {
"proxy": {
"/api": {
"target": "https://your-api-domain.com",
"changeOrigin": true,
"secure": false,
"pathRewrite": {
"^/api": ""
}
}
}
}
}
}
- 说明:将请求到
/api的路径代理到目标服务器,适用于本地调试。
2. 后端设置 CORS 头(生产环境必需)
在生产环境中,要求后端服务器配置 CORS(跨域资源共享),例如:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Headers: Content-Type
3. 使用云函数或中间服务器
通过云函数(如 uniCloud)或自建代理服务器转发请求,避免直接跨域。
注意事项:
- 以上方法 1 仅用于开发,生产环境依赖后端配置或代理。
- 小程序等平台无跨域问题,但需配置合法域名(在开发者后台设置)。
根据你的环境选择对应方案即可快速解决跨域问题。

