[英]Cors Policy Error when sending Authentication Bearer token - node.js (Google cloud functions)
我正在尝试通过 chrome 插件与我的云功能进行通信。 如果我不在云功能控制台中启用身份验证,则一切正常。 但是当我只启用经过身份验证的用户时,我收到以下错误
对 XMLHttpRequest 的访问已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头
我的 Ajax 代码
return new Promise((resolve, reject) => {
$.ajax({
url : API_ENDPOINT+'method4',
method : 'POST',
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Bearer '+firebase.auth().currentUser._lat);
},
data : 'id='+id,
success: function(data, textStatus, xhr) {
console.log(data);
resolve(data);
},
error: function(data, textStatus, xhr) {
reject(data);
console.log(data)
},
});
});
下面是我部署在云函数上的函数代码
exports.method4 = functions.https.onRequest((request, response) =>{
response.set('Access-Control-Allow-Origin', 'chrome-extension://pcpjkilopmjdhcigjjndndibccdingcb');
response.set('Access-Control-Allow-Credentials', 'true');
if (request.method === 'OPTIONS') {
// Send response to OPTIONS requests
response.set('Access-Control-Allow-Methods', 'GET, POST');
response.set('Access-Control-Allow-Headers', 'Authorization');
response.set('Access-Control-Max-Age', '3600');
response.status(204).send('');
} else {
if (request.method !== 'POST') {
// Return a "method not allowed" error
return response.status(405).end();
}
return response.send(request.body['id']);
}
})
过去 2 天我一直坚持这个问题,不确定是什么导致了这个问题。 提前致谢。
您的问题似乎是因为您使用的 OPTIONS 方法。 正如您在此处看到的,Google 应用程序脚本网络应用程序支持的唯一 HTTP 方法是 POST 和 GET,目前不支持 OPTIONS 方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.