我试图发出HTTP POST请求,但收到了此错误(当我使用__$http__
在angularjs项目中使用相同的函数时,一切都很好(我在这里搜索了类似的问题,但我认为我在JS请求代码中遗漏了一个基本点。
访问'XMLHttpRequesthttps://us-central1-MYAPP.cloudfunctions.net/app/MYURLCORS策略已阻止来自源的":请求的资源上不存在"Access Control Allow origin"标头。
Firebase侧:
const functions = require('firebase-functions');
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors({ origin: true }));
app.post('/MYURL', (req, res) => {
// my function goes here
var clientKey = req.body.clientKey;
return res.status(200).send(clientKey);
});
exports.app = functions.https.onRequest(app);
我的请求代码:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText);
}
};
xhttp.open("POST", "https://us-central1-MYAPP.cloudfunctions.net/app/MYURL", true);
xhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhttp.setRequestHeader("Access-Control-Allow-Origin", "*");
xhttp.send("clientKey=XXXXX");
由于我的问题已经过去几天了,我想在这里分享结果。我联系了Firebase支持,得到的回复是我的代码应该一切正常。我知道这很有趣,但它现在没有任何CORS错误。事实上,我真的没有改变任何事情。