【问题标题】:Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request对预检请求的响应未通过访问控制检查:预检请求不允许重定向
【发布时间】:2019-12-05 08:48:09
【问题描述】:

我正在使用 vue 和 express + firebase 函数作为后端,但它一直给我这个错误。我部署了我的 firebase 功能并使用 localhost 来访问我的服务器。任何人都可以帮忙吗?谢谢!

来自原点“http://localhost:8081”已被 CORS 策略阻止: 对预检请求的响应未通过访问控制检查: 预检请求不允许重定向。

前端

        let updateWorkshop = Firebase.functions().httpsCallable('v3/update/workshop');
        updateWorkshop()
          .then(res => {
            console.log(res);
            commit('setInfoMsg', processResults (res.body.results))
            commit('setError', null)
            commit('setLoading', false)
          }, err => {
            console.log(err);
            commit('setError', processResults (err.body.results))
            commit('setLoading', false)
          })

后台

const functions = require('firebase-functions');
const app = require('express')();
const cors = require('cors');
const colors = require('colors');

const UPDATE_WORKSHOP_DATE = require('./src/update-workshop');

// Automatically allow cross-origin requests
app.use(cors({ origin: true }));

const asyncMiddleware = fn => (req, res, next) => {
    Promise.resolve(fn(req, res, next))
        .catch((err) => {
            console.error(err);
            res.json(err)
        })
        .catch(next)
};

app.get('/v3/update/workshop', asyncMiddleware( async (req, res, next) => {
    let results = await UPDATE_WORKSHOP_DATE.Run()
    res.status(200).json({results: results})
}))

exports.api = functions.https.onRequest(app);

【问题讨论】:

  • 好吧,我发现了我遇到的问题。使赏金有点毫无意义。我不小心未能部署我的云功能——firebase 云功能控制台中没有列出任何内容。终极面子!

标签: firebase cors google-cloud-functions


【解决方案1】:

还需要将“api”添加到网址中。

Firebase.functions().httpsCallable('api/v3/update/workshop');

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 2020-10-15
    • 2016-06-05
    • 2017-04-04
    相关资源
    最近更新 更多