【发布时间】:2020-05-11 23:04:17
【问题描述】:
我正在研究一个使用 Vue 的玩具项目。在开发过程中,我从前端使用 axios 发出了 api 请求,并遇到了 CORS 问题。如果您能给我一些信息,我将不胜感激。
从源“http://localhost:8080”访问“...”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应不 通过访问控制检查:没有“Access-Control-Allow-Origin”标头 出现在请求的资源上。
我知道 CORS 问题是由请求域和响应域不同时的安全问题引起的。是这样吗?
反正我看到了在请求头中输入“Access-Control-Allow-Origin”:“*”的信息,但是没有用。
所以我搜索了更多信息。结果,我创建了一个express服务器,并为vue项目配置了代理,如下所示。
//vue.config.js
module.exports = {
outputDir:"backend/public",
assetsDir:"assets",
configureWebpack: {
devtool: 'source-map'
},
devServer: {
proxy: {
'/api': {
target: 'http://localhost:3000/api',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
而且我只是将api站点提供的基本示例代码应用到默认的express环境中。
唯一改变的东西
- 未从前端请求。 (在后端(快速)发出请求。)
- 我使用的是请求模块,而不是 axios。
为什么我在后端(express)发出 api 请求时没有出现 CORS 错误?
【问题讨论】:
-
Cors 是浏览器的概念,不是一般的 http,所以它只在那儿发生