Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未为firebase云功能启用Cors_Javascript_Node.js_Firebase_Google Cloud Functions_Cors - Fatal编程技术网

Javascript 未为firebase云功能启用Cors

Javascript 未为firebase云功能启用Cors,javascript,node.js,firebase,google-cloud-functions,cors,Javascript,Node.js,Firebase,Google Cloud Functions,Cors,我正在使用cors npm包来解决cors问题,但没有效果。这在以前是可行的,但当我切换到我的开发环境时,我不断遇到以下错误: 在'https://carside.firebaseapp.com/sendsmstoconsumer“起源”https://carside.web.app'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在'access control Allow Origin'标头。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获

我正在使用cors npm包来解决cors问题,但没有效果。这在以前是可行的,但当我切换到我的开发环境时,我不断遇到以下错误:

在'https://carside.firebaseapp.com/sendsmstoconsumer“起源”https://carside.web.app'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在'access control Allow Origin'标头。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源

以下是我的函数代码的设置方式:

const functions = require('firebase-functions')
const express = require('express')
const app = express()
const accountSid = 'SECRET'
const authToken = 'SECRET'
const client = require('twilio')(accountSid, authToken)
const cors = require('cors')

// Enable cors for everything
// TODO: Re-enable cors at a later date 
// src: https://www.npmjs.com/package/cors
app.use(cors())

app.post('/sendsmsverificationmessage', cors() ,(request, response) => {

    client.verify.services('SECRET')
        .verifications
        .create({to: request.body.phone, channel: 'sms'})
    .then(verification => {
        response.send("Your verification code has been sent to your phone!" )
    });
})

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


在我看来没问题,也许可以检查一下您在进行更改后是否重新启动了express服务器。否则,我不使用cors包,而是使用*中的代码段授予一切访问权,但它可以被您想要授予访问权的特定域替换

编辑:另外,您正在使用cors两次。在应用程序中使用一次,然后在路线中再次使用。我不认为这会导致cors不工作,但这是不必要的

app.usefunctionreq,res,next{ res.headerAccess-Control-Allow-Origin,*;//更新以匹配您将从中发出请求的域 res.headerAccess-Control-Allow-Headers,来源,X-Requested-With,内容类型,接受; 下一个
}; 使用外部库处理选项调用 您需要:

const cors = require('cors')({origin: true});
另见:


app.usecors使所有页面都可以通过corsYes访问它应该是我仍然会收到no access错误我现在收到此错误已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Origin”标头。我已删除cor并开始使用app.usecors,它仍然不起作用。这就是我现在收到的错误。对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标题。您可能需要重新阅读该问题