Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.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 仅在浏览器上调用CORS阻止的我自己的Firbase函数_Javascript_Node.js_Firebase_Google Cloud Functions - Fatal编程技术网

Javascript 仅在浏览器上调用CORS阻止的我自己的Firbase函数

Javascript 仅在浏览器上调用CORS阻止的我自己的Firbase函数,javascript,node.js,firebase,google-cloud-functions,Javascript,Node.js,Firebase,Google Cloud Functions,我得到一个错误: Access to XMLHttpRequest at 'https://us-central1-myproject-64732.cloudfunctions.net/getProduct has been blocked by CORS 我的域名注册为example.com 编辑 我有: const cors = require('cors')({origin: true}); const rp = require('request-promise'

我得到一个错误:

Access to XMLHttpRequest at 'https://us-central1-myproject-64732.cloudfunctions.net/getProduct has been blocked by CORS
我的域名注册为
example.com

编辑

我有:

      const cors = require('cors')({origin: true});
      const rp = require('request-promise');

      exports.getProduct = functions.https.onRequest((request, response) => {    
        const options = {
        uri: url,
        headers: {

        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'Accept-Encoding': '*',
        'Accept-Language': 'en-US,en',
        "Access-Control-Allow-Origin":"*",
        'Access-Control-Allow-Methods': 'GET, PUT, POST, OPTIONS',
        'Access-Control-Allow-Headers': '*',
        'Cache-Control': 'max-age=0',
        'Connection': 'keep-alive',
        'Referer': 'http://www.google.com/',
        'Upgrade-Insecure-Requests': '1',
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
      }
          rp(options)
          .then(($) => { ...
存在我的
访问控制允许原点
,而错误表示未显示

EDIT2

该功能在本地计算机和终端模拟器上使用时有效,但在浏览器中不起作用。

请尝试以下操作:

import * as functions_ from 'firebase-functions';
// import * as firebaseHelper from 'firebase-functions-helper';
import * as express_ from 'express';
import * as bodyParser_ from "body-parser";
import News from './news.function';
import Meteo from './meteo.function';

const _cors = require('cors')({
    origin: true,
});

let bodyParser = bodyParser_;
let express = express_;
let functions = functions_;
// const db = admin.firestore();
const app = express();
const main = express();




// YOUR API ROUTES  
app.get('/news/', (req, res) => News(req, res));
app.get('/meteo/', async (req, res) => {
    console.log('here');
    Meteo(req, res)
});

main.use('/api/v1', app);
main.use(bodyParser.json());
main.use(bodyParser.urlencoded({ extended: false }));




// webApi is your functions name, and you will pass main as 
// a parameter
export const webApi = functions.https.onRequest((req, resp) => {
    _cors(req, resp, () => {
        main(req, resp);
    })
});

希望它能帮助你

对于任何挣扎的人,我都找到了解决办法

exports.getProduct = functions.https.onRequest((request, response) => {

     cors(request, response, () => { // ******  thats solve it

       const options = {
        uri: url,
        headers: { ......

         rp(options)
          .then(($) => { ...
添加cors请求使其工作。当然包括图书馆。
我还发现,当我部署单个函数时,它不会总是部署它,也不会产生一些奇怪的问题。

非常感谢!你能看到我的编辑吗?我使用请求-承诺库。我想修复我的代码,但继续在cors中使用请求承诺:)我不确定,但尝试设置:_cors(req,resp,()=>{//这里是您的选项,等等。)谢谢,我仍在努力,不确定如何使用选项实现您的注释。