Python 烧瓶,Heroku,反应CORS问题

Python 烧瓶,Heroku,反应CORS问题,python,react-native,flask,heroku,cors,Python,React Native,Flask,Heroku,Cors,我尝试了互联网上的所有解决方案,但都失败了。我有一个Flask后端应用程序和react本机前端应用程序。Flask应用程序部署在Heroku上,react本机运行在localhost上 从react本机应用到heroku上的flask应用的POST请求失败。发生此错误 从源站“”访问“”处的XMLHttpRequest已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。 当两个应用程序都在本地主机上时,它可以正常工作。但当flask在heroku上时,会发生此错

我尝试了互联网上的所有解决方案,但都失败了。我有一个Flask后端应用程序和react本机前端应用程序。Flask应用程序部署在Heroku上,react本机运行在localhost上

从react本机应用到heroku上的flask应用的POST请求失败。发生此错误 从源站“”访问“”处的XMLHttpRequest已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。

当两个应用程序都在本地主机上时,它可以正常工作。但当flask在heroku上时,会发生此错误。下面是我的代码

反应码 烧瓶代码
这似乎是一个安全问题,因为这两个应用程序没有使用相同的协议(HTTPS),它们在localhost上运行良好是有道理的,因为它们没有协议绑定,但现在flask rest api在HTTPS连接上,我建议您打开cors策略
pip安装-U flask cors
并调用应用程序中的中间件

from flask import Flask
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

然后尝试将您的前端应用程序部署到一些非常简单的应用程序上,比如使用nginx代理或expressrestapi为其提供服务,看看问题是否与这两种可能性不同,尽情享受吧

“我尝试了互联网上的所有解决方案,但都失败了”——这显然是错误的。夸张是无济于事的。在这里提问时请尽量准确。看,试着看看它说什么
from flask import Flask
from flask import request
from flask_cors import CORS, cross_origin
from flask_api import status
from flask_pymongo import PyMongo

app = Flask(__name__)
CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
app.config['MONGO_DBNAME'] = 'testdb'
app.config['MONGO_URI'] = 'mongodb+srv://username@development-xec6b.gcp.mongodb.net/testdb?retryWrites=true&w=majority'
mongo = PyMongo(app, resources={r"/login": {"origins": "https://localhost:19006"}})

@app.route('/login',methods=['POST'])
@cross_origin(origin='localhost',headers=['Content- Type','Authorization'])
def login():
    user = mongo.db.users
    email = request.json['email']
    password = request.json['password']
    email_exists = bool(user.find_one({'email': email}))
    pw_exists = bool(user.find_one({'password':password}))
    response = user.find_one({'email': email}).to_jon();
    response.headers.set('Access-Control-Allow-Origin', '*')
    response.headers.set('Access-Control-Allow-Methods', 'GET, POST')
    response.headers.set()
    if email_exists & pw_exists:
        return "Authenticated", status.HTTP_200_OK
    else:
        return "Record not found", status.HTTP_204_NO_CONTENT

if __name__ == '__main__':
    app.run()
from flask import Flask
from flask_cors import CORS

app = Flask(__name__)
CORS(app)