由于cors政策问题,Axios和Vue无法对我的服务器进行api调用

时间:2019-01-01 06:17:23

标签: express vue.js cors axios

我在我的express(Node)服务器中设置了cors,如下所示:

server.options('*',cors());
server.use(cors());

像这样在我的Vue网站上拨打电话

axios.default
          .post(url, {
            firstName: this.firstName,
            lastName: this.lastName,
            email: this.email,
            interests: this.interests,
            targetURL: "https://www.joinvurchase.com/email-verified/",
            poolID
          })

但是出现以下错误:

has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

我认为服务器上的核心设备已正确设置,因为当我使用邮递员拨打电话时,它可以工作并返回Access-Control-Allow-Origin →*标头。同样,当我在网站上拨打电话时,它几乎立即出错。因此,它甚至可能无法进入我的服务器。在本地测试时,完全相同的设置适用。将服务器和网站都部署到Heroku之后,就会出现此问题。

2 个答案:

答案 0 :(得分:1)

我知道了。我使用google域,并且将域从“ mydomain.com”重新路由为“ www.mydomain.com”。假设这行得通,我将网址用作mydomain.com。由于这些呼叫最终被重新路由,因此我的呼叫失败Redirect is not allowed for a preflight request.。所以我只是开始将www添加到我的网址中,问题就消失了。

答案 1 :(得分:0)

您可以尝试一下吗,这可以为我解决cors问题

app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "HEAD, OPTIONS, GET, POST, PUT, DELETE");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
  next();
});