【问题标题】:Flask python API CORS issue from Angular来自Angular的Flask python API CORS问题
【发布时间】:2020-11-28 09:04:37
【问题描述】:

我有如下设置的 Flask Python API 和 cors。从浏览器调用时它工作正常。但是当从当前从 localhost:4200 测试的 Angular 应用程序调用时出现 CORS 错误。

来自 Chrome 开发人员工具 - 可以看到请求方法 = 选项(预检请求)返回 200 的预检请求,但实际请求引发 CORS 错误。不知道我在这里做错了什么。请分享见解。

仅供参考 - 尝试了一些调整,例如使允许的来源 "*" ,删除 "supports_credentials=True";还是一样的 CORS 错误

错误:

Error:
Access to XMLHttpRequest at 'https://app01.dev.com/coreengine?rootfolder=app01&childfolder=jun2020&team=app01&action=customhierarchy' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

代码:

from flask_cors import CORS
mainapp = Flask(__name__)
cors = CORS(mainapp, resources={r"/*": {"origins":["http://localhost:4200"]}},supports_credentials=True)
@mainapp.route('/coreengine', methods=['GET','POST'])
def coreengine():
{
  #Code 
}

【问题讨论】:

    标签: python angular flask cors flask-cors


    【解决方案1】:

    在与 package.json 文件平行的应用程序的根目录下,创建一个新文件 proxy.config.json

    {
    "/coreengine*": {
        "target":"https://app01.dev.manulife.com",
        "secure":true,
        "logLevel":"debug"
        }
    }  
    

    现在在您的 package.json 脚本中:{},添加以下文件名为 proxy.config.json 的 flax 以启动“

    {
    "scripts": {
        "start":"ng serve --proxy-config proxy.config.json",
        "test":"ng test"
    }
    }
    

    希望这对你有用。

    【讨论】:

    • 我尝试添加代理 Json ,仍然得到相同的 cors 错误。有或没有代理 json 的预检请求没有 cors 错误
    • 实际上我发现问题不在于 flask_cors 配置。我显示了 flask_cors 日志并启用了 python 调试。 Angular 缺少一些 python 使用 request.headers.get() 获取的标头;它正在抛出 CORS 错误。跳过这些标头的 Angular 拦截器。发送这些标头后报告的 CORS 已解决。逻辑正在执行,但遇到另一个从 Flask API 调用 Azure AD 的 CORS 问题,这似乎是不同的问题。将为此打开新线程
    猜你喜欢
    • 2015-04-12
    • 2020-06-18
    • 2021-10-11
    • 2020-07-12
    • 2021-09-19
    • 2019-01-24
    • 2021-03-13
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多