Flask实现跨域请求的处理方法
程序员文章站
2023-11-10 22:00:46
在flask开发restful后端时,前端请求会遇到跨域的问题。下面是解决方法:
使用 flask-cors库可以很容易的解决
pip install flas...
在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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。