网络编程
位置:首页>> 网络编程>> Python编程>> Flask实现跨域请求的处理方法

Flask实现跨域请求的处理方法

作者:ykbj  发布时间:2022-03-18 08:19:07 

标签:Flask,跨域请求

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法:

使用 flask-cors库可以很容易的解决


pip install flask-cors

两种方法,一个是全局/批量的,一个是单一独立的:

安全起见,一般来说使用独立的方式会常用一些。

1.独立方式

通过给路由添加@cross_origin标识即可


from flask import Flask, jsonify
from flask_cors import cross_origin

@app.route('/upload', methods=['POST', 'OPTIONS'])
@cross_origin()
def upload():
 # todo
 result_text = {"result": "True"}
 return jsonify(result_text)

2.全局方式

也很简单:


from flask import Flask
from flask_cors import CORS

if __name__ == '__main__':
 app.run(host='0.0.0.0', threaded=True, debug=True)
 CORS(app)

这样所有的路由都会支持跨域了。

3.批量方式

还有根据路由正则来批量控制等方式,更加灵活,可以查阅官方文档。

对请求的Response header中加入header


@app.after_request
def af_request(resp):
"""
#请求钩子,在所有的请求发生后执行,加入headers。
:param resp:
:return:
"""
resp = make_response(resp)
resp.headers['Access-Control-Allow-Origin'] = '*'
resp.headers['Access-Control-Allow-Methods'] = 'GET,POST'
resp.headers['Access-Control-Allow-Headers'] = 'x-requested-with,content-type'
return resp

来源:https://my.oschina.net/ykbj/blog/2086068

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com