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

Posted

技术标签:

【中文标题】为啥后端服务器不会出现CORS问题?【英文标题】:Why doesn't the CORS problem occur on the backend server?为什么后端服务器不会出现CORS问题? 【发布时间】: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,所以它只在那儿发生 【参考方案1】:

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

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

【讨论】:

以上是关于为啥后端服务器不会出现CORS问题?的主要内容,如果未能解决你的问题,请参考以下文章

跨域CORS

React.js 应用程序向 Django 后端发送请求时出现 CORS 问题

为啥我会收到 CORS 错误原因:CORS 请求未成功

CORS 问题 - 使用 Keycloak 保护 ReactJS 前端和 JAX-RS 后端

是否可以在相同的主机名和端口上运行 webpack 开发服务器和后端服务器以避免 CORS?

React/Redux 前端和 Node.js 后端之间的 CORS 问题 [重复]