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中的赋值运算符
May 13 Python
python处理按钮消息的实例详解
Jul 11 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
浅谈flask源码之请求过程
Jul 26 Python
PyTorch基本数据类型(一)
May 22 Python
python tools实现视频的每一帧提取并保存
Mar 20 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
Python的collections模块真的很好用
Mar 01 Python
python基础之类方法和静态方法
Oct 24 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
制作美丽的拉花
2021/03/03 冲泡冲煮
2.PHP入门
2006/10/09 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
PHP 配置后台登录以及模板引入
2017/01/24 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
js 自定义的联动下拉框
2010/02/07 Javascript
ExtJs Excel导出并下载IIS服务器端遇到的问题
2011/09/16 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
js实现拖拽效果
2015/02/12 Javascript
原生JS封装ajax 传json,str,excel文件上传提交表单(推荐)
2016/06/21 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
JavaScript实现精美个性导航栏筋斗云效果
2017/10/29 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
Element的el-tree控件后台数据结构的生成以及方法的抽取
2020/03/05 Javascript
Python的Django框架中的Context使用
2015/07/15 Python
python脚本设置系统时间的两种方法
2016/02/21 Python
Python随机生成带特殊字符的密码
2016/03/02 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
回馈慈善的设计师太阳镜:DIFF eyewear
2019/10/17 全球购物
一套带网友答案的.NET笔试题
2016/12/06 面试题
2014年情人节活动方案
2014/02/16 职场文书
管理建议书范文
2014/05/13 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
2015年敬老月活动总结
2015/03/27 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
python3 sqlite3限制条件查询的操作
2021/04/07 Python
MySql开发之自动同步表结构
2021/05/28 MySQL
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android