CORS白名单配置后前端还是跨域,咋回事?
我后端已经加了CORS白名单,只允许我们自己的域名访问,但本地开发时用 localhost:8080 还是报跨域错误,是不是哪里没配对?
我在 Vue 里是这样发请求的:
<script setup>
import axios from 'axios'
const fetchData = async () => {
try {
const res = await axios.get('https://api.example.com/data')
console.log(res.data)
} catch (err) {
console.error('请求失败:', err)
}
}
</script>
后端说白名单里加了 https://myapp.com,但本地开发用的是 http://localhost:8080,这算不算没匹配上?需要把 localhost 也加进去吗?
http://localhost:8080和https://myapp.com完全不是一回事,CORS 白名单必须把http://localhost:8080也加进去,而且注意协议(http vs https)和端口(8080)都要完全匹配,我之前这样搞的:后端白名单里加http://localhost:8080,生产环境再加https://myapp.com,改完重启服务再试,别用代理缓存绕过本地开发时的跨域。