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中字符串前面加r的作用
Jun 04 Python
Python方法的延迟加载的示例代码
Dec 18 Python
Python OpenCV处理图像之图像像素点操作
Jul 10 Python
matplotlib调整子图间距,调整整体空白的方法
Aug 03 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
python 字典的打印实现
Sep 26 Python
python获取栅格点和面值的实现
Mar 10 Python
PyTorch加载自己的数据集实例详解
Mar 18 Python
python中xlutils库用法浅析
Dec 29 Python
Python约瑟夫生者死者小游戏实例讲解
Jan 04 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 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基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
php 字符串替换的方法
2012/01/10 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
实用的简单PHP分页集合包括使用方法
2013/10/21 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
python动态参数用法实例分析
2015/05/25 Python
Python 文件操作的详解及实例
2017/09/18 Python
python模拟事件触发机制详解
2018/01/19 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
python-视频分帧&多帧合成视频实例
2019/12/10 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
2020/11/20 Python
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
普天C++笔试题
2016/03/20 面试题
广州某公司软件工程师面试题
2014/12/22 面试题
介绍一下RMI的基本概念
2016/12/17 面试题
查摆问题对照检查材料
2014/08/28 职场文书
综合办公室岗位职责
2015/04/11 职场文书
财务管理制度范本
2015/08/04 职场文书
禁毒心得体会范文
2016/01/15 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
新手初学Java List 接口
2021/07/07 Java/Android