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


Posted in Python onSeptember 27, 2018

在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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python创建列表并给列表赋初始值的方法
Jul 28 Python
Python中字典的基础知识归纳小结
Aug 19 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
Python实现获取系统临时目录及临时文件的方法示例
Jun 26 Python
Python实现FTP文件传输的实例
Jul 07 Python
pytest中文文档之编写断言
Sep 12 Python
Python单元测试与测试用例简析
Nov 09 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
Python3通过chmod修改目录或文件权限的方法示例
Jun 08 Python
matplotlib如何设置坐标轴刻度的个数及标签的方法总结
Jun 11 Python
python模板入门教程之flask Jinja
Apr 11 Python
python环形单链表的约瑟夫问题详解
Sep 27 #Python
transform python环境快速配置方法
Sep 27 #Python
python如何求解两数的最大公约数
Sep 27 #Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 #Python
python斐波那契数列的计算方法
Sep 27 #Python
python实现汉诺塔算法
Mar 01 #Python
Python3中bytes类型转换为str类型
Sep 27 #Python
You might like
php二维码生成
2015/10/19 PHP
JQuery.ajax传递中文参数的解决方法 推荐
2011/03/28 Javascript
jquery 无限级联菜单案例分享
2013/03/26 Javascript
js实现右下角可关闭最小化div(可用于展示推荐内容)
2013/06/24 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
js 实现 list转换成tree的方法示例(数组到树)
2019/08/18 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
python3 实现的人人影视网站自动签到
2016/06/19 Python
Python 多线程的实例详解
2017/09/07 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
windows下python安装pip方法详解
2020/02/10 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
机械制造专业毕业生求职信
2014/03/02 职场文书
廉洁使者实施方案
2014/03/29 职场文书
数学兴趣小组活动总结
2014/07/08 职场文书
大学活动总结模板
2014/07/10 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
有关西游记的读书笔记
2015/06/25 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
SONY600GR,国产收音机厂商永远的痛
2022/04/05 无线电
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang