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函数式编程指南(三):迭代器详解
Jun 24 Python
Python的pycurl包用法简介
Nov 13 Python
Python通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
分享一个简单的python读写文件脚本
Nov 25 Python
python并发2之使用asyncio处理并发
Dec 21 Python
使用Python实现在Windows下安装Django
Oct 17 Python
Python 一句话生成字母表的方法
Jan 02 Python
python3实现高效的端口扫描
Aug 31 Python
pytorch中的上采样以及各种反操作,求逆操作详解
Jan 03 Python
Python tornado上传文件的功能
Mar 26 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
python如何为list实现find方法
May 30 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 表单数据的获取代码
2009/03/10 PHP
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
php使用function_exists判断函数可用的方法
2014/11/19 PHP
最准确的php截取字符串长度函数
2015/10/29 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
JQuery onload、ready概念介绍及使用方法
2013/04/27 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
weex里Vuex state使用storage持久化详解
2017/09/09 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
Vue-CLI项目中路由传参的方式详解
2019/09/01 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
[57:55]EG vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
内科护士实习自我鉴定
2013/10/17 职场文书
办公室人员先进事迹
2014/01/27 职场文书
创建青年文明号材料
2014/05/09 职场文书
2014年生产部工作总结
2014/12/17 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
2021/05/17 Python
浅析Django接口版本控制
2021/06/26 Python
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS