我的前端和后端运行在单独的容器中。但是,当我尝试从React前端-> Flask后端执行POST时,我可以同时访问这两者。
可以从源地址“ 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')
答案 0 :(得分:0)
正在清除信息,表明您的来源是lcoalhost:8080,而您在http://localhost:5000/api/upload上访问它时,可以先检查端口
我认为您必须在falsk应用程序中进行此更改
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
我想您是否可以在此处指定端口