flask框架中跨域请求解决方法

首先看报错提示:

Access to XMLHttpRequest at ‘http://127.0.0.1:5000/users?query=&pagesize=5&pagenum=1’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

        这个错误是因为浏览器的跨域请求安全策略所导致的,简单来说就是浏览器不允许通过 AJAX 发送跨域请求。

为了解决这个问题,需要在 Flask 中添加跨域访问的支持。可以使用 Flask-Cors 扩展来实现。

首先,需要安装 Flask-Cors 扩展:

pip install flask-cors

然后在 Flask 应用中添加如下代码:

from flask import Flask, jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

# 定义路由和视图函数

上述代码通过 CORS(app) 启用了 Flask-Cors 扩展,这样就可以让浏览器允许跨域请求了。

如果你需要更精细的跨域控制,可以通过 CORS 对象的实例方法来进行配置,例如:

from flask import Flask, jsonify
from flask_cors import CORS

app = Flask(__name__)
cors = CORS(app, resources={r"/api/*": {"origins": "*"}})

# 定义路由和视图函数

        上述代码指定了 resources 参数,表示只有 /api/* 路径下的请求允许跨域访问,而且允许任何来源的请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值