【问题标题】:Flask cross domain not working together with namespaceFlask跨域不与命名空间一起工作
【发布时间】:2019-07-20 21:55:58
【问题描述】:

从 flask_cors 导入和 CORS 后,我让烧瓶服务器支持来自 localhost 的请求。但前提是请求在 api.route 下。

对于命名空间下的任何目标,我得到CORS 策略已阻止从源“http://localhost:3000”获取“http://127.0.0.1:5151/api/hello2”的访问权限

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'}

命名空间.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 给我一个错误。

请指点我正确的方向。

【问题讨论】:

    标签: python flask cors namespaces cross-domain


    【解决方案1】:

    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/ 正在工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-26
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      相关资源
      最近更新 更多