为什么后端服务器不会出现CORS问题?

Tay*_*ous 1 api cors express vue.js

我正在使用 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': ''
            }
        }
    }
}

}
Run Code Online (Sandbox Code Playgroud)

而我只是将api站点提供的基本示例代码应用到默认的express环境中。

唯一改变的是

  1. 没有向前端请求。(在后端(express)提出了请求。)
  2. 我使用的是请求模块,而不是axios。

为什么我在后端(express)发出api请求时没有出现CORS错误?

Arm*_*man 5

根据 MDN 的说法,CORS 是一种为跨域浏览器和服务器之间的请求和数据传输添加安全性的机制,因此它不会受到后端和代理服务器的影响。

现代浏览器在 XMLHttpRequest 或 Fetch 等 API 中使用 CORS 来降低跨源 HTTP 请求的风险。