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中让MySQL查询结果返回字典类型的方法
Aug 22 Python
使用Python构建Hopfield网络的教程
Apr 14 Python
python3+PyQt5使用数据库窗口视图
Apr 24 Python
Python BS4库的安装与使用详解
Aug 08 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
django云端留言板实例详解
Jul 22 Python
Python使用python-docx读写word文档
Aug 26 Python
python爬虫 Pyppeteer使用方法解析
Sep 28 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
Jan 16 Python
关于Python中进度条的六个实用技巧分享
Apr 05 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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 XML数据解析代码
2010/05/26 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
thinkphp备份数据库的方法分享
2015/01/04 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
php递归函数怎么用才有效
2018/02/24 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
javascript中直接写php代码的方法
2013/07/31 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
2018/04/09 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
npm的lock机制解析
2019/06/20 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
Python open读写文件实现脚本
2008/09/06 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
Python定时任务sched模块用法示例
2018/07/16 Python
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
销售简历自我评价
2014/01/24 职场文书
作弊检讨书1000字
2014/02/01 职场文书
保密工作实施方案
2014/02/24 职场文书
五一手机促销方案
2014/03/08 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
离婚上诉状范文
2015/05/23 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书