【flask跨域】关于flask跨域的问题

  • Post author:
  • Post category:其他




问题

跨域是很常见的问题,我们采用flask-cors解决,但是未能生效。代码如下:

from flask import Flask, jsonify, make_response
from flask_cors import CORS, cross_origin

app = Flask(__name__)
CORS(app, resources=r"/*")	# 注册CORS, "/*" 允许访问所有api

@app.route('/cmt', methods=['GET'])
def get_cmt():
    context = jsonify(
        code=200,
        data=[
            {"id": 1, "name": '张三', "title": '沙发', "content": "我是1楼"},
            {"id": 2, "name": '李四', "title": '板凳', "content": "我是2楼"},
            {"id": 3, "name": '王五', "title": '茶几', "content": "我是3楼"},
        ])
    return context
    # return func_res(context)

if __name__ == '__main__':
    app.run()



解决方法

在app.run()里面加上参数host=“0.0.0.0”, port=5000

    app.run(host="0.0.0.0", port=5000)

问题得到解决



原理


1、默认启动


在这里插入图片描述


2、0.0.0.0启动


在这里插入图片描述


3、本地ip启动


在这里插入图片描述

可以看到flask默认启动ip是127.0.0.1,是环回地址,所以即便使用flask-cors处理跨域,也不能解决问题。

我们可以将flask启动ip改为本地ip或者0.0.0.0。



版权声明:本文为qq_45729286原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。