[英]CORS Error in Flask Backend on GCP Cloud Run and Angular
我正在开发一个仪表板,前端为 Angular,后端为 MySQL 和 Flask。我已经在 CloudSQL 上部署了数据库,在 GCP Cloud Run 上部署了 Flask 后端。 在我的本地计算机上生产期间,我遇到了这个错误:
对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”header。
我通过在本地将以下代码添加到我的 flask 后端来修复它:
from flask_cors import CORS
CORS(app, resources={r"*": {"origins": "*"}})
我还在 flask 上的每个 function 之前尝试使用以下代码,它似乎在本地计算机上完美运行:
from flask_cors import cross_origin
@app.route('/api/register_smartbox', methods=['POST'])
@cross_origin()
def register_smartbox():
recv_req = request.get_json()
主要问题发生在我将它部署到 GCP Cloud run 上时。 我在那里使用经过身份验证的调用。 以下是我在 Angular 应用程序中从浏览器发送 API 请求时在云运行日志中获得的日志:
警告 2022-02-24T06:14:41.430198ZOPTIONS4030 B0 msChrome 98 https://<My_URL>.app/api/login_users 请求未通过身份验证。 允许未经身份验证的调用或设置正确的授权 header。在 https 阅读更多内容://cloud.google.com/run/docs/securing/authenticating可以在以下位置找到其他故障排除文档: https://cloud.google.com/run /docs/troubleshooting#unauthorized-client
这是我在浏览器中遇到的错误
从来源“http://127.0.0.1:5555”访问位于“https://<My_URL>.app/api/login_users”的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查: 请求的资源上不存在“Access-Control-Allow-Origin”header。
到目前为止我尝试过的事情:
const headers = {"Content-Type": "application/json", 'Authorization': this.auth_tok, "credentials": 'include'}
几天来我一直被这个问题困扰。 任何形式的帮助将不胜感激。 谢谢
经过身份验证的调用不适用于 CORs 请求,因为您的 web 浏览器在向您的服务发出预检请求时未发送所需的身份验证令牌。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.