Мой фронтенд и бэкэнд работают в отдельных контейнерах.Однако я могу получить доступ к обоим, но при попытке выполнить POST из интерфейса React -> Flask меня блокирует CORS.
Доступ к выборке в 'http://localhost:5000/api/upload' от источника`'http://localhost:8080' заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.Если непрозрачный ответ удовлетворяет вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.
Я пытался добиться этого с Flask-Cors, но все ещепосле многих попыток вы получите ту же ошибку.
Вот мое приложение фляги.py:
# Start with a basic flask app webpage.
from flask import Flask, render_template, url_for, copy_current_request_context, request
from werkzeug.utils import secure_filename
from flask_cors import CORS, cross_origin
import os
UPLOAD_FOLDER = '/uploads'
ALLOWED_EXTENSIONS = set(['gz'])
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
app.config['DEBUG'] = True
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
CORS(app, resources=r'/api/*')
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
@app.route('/api/upload', methods=['POST'])
@cross_origin(headers=['Content-Type'])
def fileUpload():
target=os.path.join(UPLOAD_FOLDER,'test_docs')
if not os.path.isdir(target):
os.mkdir(target)
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
destination="/".join([target, filename])
file.save(destination)
response="Whatever you wish too return"
else:
response="File not parsed."
return response
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')