当前位置: 移动技术网 > IT编程>脚本编程>Python > Flask实现跨域请求的处理方法

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

2018年10月08日  | 移动技术网IT编程  | 我要评论

遗传算法流程图,中国命理网,罗七生活网

在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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网