首页 > 解决方案 > Vue + Axios:向第三方网站发出 GET 请求会引发 CORS 错误

问题描述

我正在尝试从我的 vue 应用程序向第三方网站发出获取请求。这是一个公共网站,例如 stackoverflow.com。

mounted() {
    axios.get('https://stackoverflow.com/')
},

我得到这个:

Access to XMLHttpRequest at 'https://stackoverflow.com/' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

如果我将项目上传到 Web 服务器上,也会发生同样的事情。如果我从 Express.js 应用程序发出请求,它工作正常。

有解决方法吗?我真的不明白为什么它会在服务器而不是浏览器上工作。我也尝试在网络服务器上上传项目,还是一样。

标签: vue.jsaxios

解决方案


似乎是因为您从 localhost 请求 HTTPS 资源,默认情况下是 HTTP。尝试仅请求 HTTP?

或者,将Access-Control-Allow-Origin: '*'标头添加到您的请求中。

此外,我还建议使用该vue-axios库来配置您的axios.

例如

import axios from "axios";
import VueAxios from "vue-axios";

Vue.use(VueAxios, axios);

推荐阅读