我已经读了很多关于这个主题的文章,但我仍然无法理解它
我已经建立了一个网络应用程序,允许用户抓取他们的网站地图,并将其添加到Firebase中的文档中。我正在使用Firebase托管来托管web应用程序,它被推到了我的子域中。
我正在使用此包爬网网站地图-https://www.npmjs.com/package/get-sitemap-links
我每次在生产中都会遇到这个错误——";访问位于"的XMLHttpRequesthttps://www.userswebsite.com/page-sitemap.xml'来自原点'https://app.mywebsite.com'已被CORS策略阻止:请求的资源上不存在"Access Control Allow Origin"标头">
我还没有为这个网络应用程序创建任何云功能,但读到我必须使用一个功能启用CORS。我该怎么做?
要启用CORS
,您必须使用以下命令在function
文件夹中安装库
npm i cors --save
并导入如下所示:
const cors = require('cors')({origin: true});
您也可以使用下面的代码段在没有任何库的情况下设置CORS
标头
response.set('Access-Control-Allow-Origin', '*');
有关更多信息,请查看此文档和此线程
如果您正在为HTTP功能配置CORS
。使用cors选项来控制哪些原点可以访问您的函数。
如果为true,则允许CORS处理对此函数的请求。如果这是一个字符串RegExp允许来自与所提供的值匹配的域的请求。如果这是一个数组,则允许来自至少匹配的域的请求数组的一个条目。https默认为true。可调用函数否则为false。
签名:
cors?: string | boolean | RegExp | Array<string | RegExp>;