【问题标题】: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环境中。

唯一改变的东西

  1. 未从前端请求。 (在后端(快速)发出请求。)
  2. 我使用的是请求模块,而不是 axios。

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

【问题讨论】:

  • Cors 是浏览器的概念,不是一般的 http,所以它只在那儿发生

标签: api express vue.js cors


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-09-17
    • 2017-11-04
    • 2020-01-01
    • 2017-04-17
    • 1970-01-01
    • 2020-08-24
    • 2010-10-14
    • 2013-04-11
    • 1970-01-01
    相关资源
    最近更新 更多