从flask_cors导入和CORS之后,我得到了flask服务器来支持来自本地主机的请求。但前提是请求位于api.route下。
对于命名空间下的任何目标,我得到 访问CORS策略已阻止从源“ http://127.0.0.1:5151/api/hello2”获取“ http://localhost:3000”的权限
app.py
app = Flask(__name__)
CORS(app, resources={r"/*": {"origins":"*"}})
...
...
def initialize_app(flask_app):
"""
Register blueprints and append all namespaces
"""
blueprint = Blueprint('api', __name__, url_prefix='/api')
api.init_app(blueprint)
api.add_namespace(hello_namespace)
flask_app.register_blueprint(blueprint)
restplus.py
api = Api(version='1.0', title='API', description='API ...')
@api.route('/hello')
class HelloWorld(Resource):
def get(self):
return {'hello': 'world from API'}
Namespace.py
ns = api.namespace('hello2', description='Hello endpoints')
@ns.route('/')
@api.doc(responses={404: 'Failed to connect'}, description='List all')
class HelloList(Resource):
def get(self):
return [{'hello': 'world from API'}]
从http://127.0.0.1:5151/api/hello获取数据有效。 http://127.0.0.1:5151/api/hello2给我一个错误。
请指向正确的方向。
答案 0 :(得分:0)
corydolphin 评论于2016年3月18日 https://github.com/corydolphin/flask-cors/issues/128#issuecomment-198453999
“我希望发生的事情是Flask默默地从'foo'重定向到'foo /'。Flask自动执行此操作。”
通过在客户端的请求中添加尾部斜杠来进行改进。 http://127.0.0.1:5151/api/hello2/现在正在工作。