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 相关文章推荐
django中静态文件配置static的方法
May 20 Python
Python实现的各种常见分布算法示例
Dec 13 Python
关于python之字典的嵌套,递归调用方法
Jan 21 Python
由Python编写的MySQL管理工具代码实例
Apr 09 Python
详解Python并发编程之创建多线程的几种方法
Aug 23 Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 Python
基于Python+Appium实现京东双十一自动领金币功能
Oct 31 Python
Python通过VGG16模型实现图像风格转换操作详解
Jan 16 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
Jan 20 Python
基于PyQT实现区分左键双击和单击
May 19 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 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
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
深入解析PHP的引用计数机制
2013/06/14 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
Yii分页用法实例详解
2014/12/04 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
PHP数组遍历的几种常见方式总结
2019/02/15 PHP
深入学习微信网址链接解封的防封原理visit_type
2019/08/15 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
javascript 框架小结 个人工作经验
2009/06/13 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
JavaScript实现Flash炫光波动特效
2015/05/14 Javascript
js实现网页多级级联菜单代码
2015/08/20 Javascript
基于JavaScript实现自定义滚动条
2017/01/25 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
python从ftp下载数据保存实例
2013/11/20 Python
Python微信公众号开发平台
2018/01/25 Python
python如何绘制疫情图
2020/09/16 Python
英国儿童图书网站:Scholastic
2017/03/26 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
将"引用"作为函数参数有哪些特点
2013/04/05 面试题
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
大二学生学习个人自我评价
2014/01/19 职场文书
师范类求职信
2014/06/21 职场文书
美术专业自荐信
2014/07/07 职场文书
委托书怎么写
2014/07/31 职场文书
师德自我剖析材料范文
2014/10/06 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle