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/* 路径下的请求允许跨域访问,而且允许任何来源的请求。

猜你喜欢

转载自blog.csdn.net/weixin_44799217/article/details/131280439
今日推荐