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采用Django制作简易的知乎日报API
Aug 03 Python
Python文件操作基本流程代码实例
Dec 11 Python
python机器人行走步数问题的解决
Jan 29 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
python flask解析json数据不完整的解决方法
May 26 Python
在Python中获取操作系统的进程信息
Aug 27 Python
python标准库os库的函数介绍
Feb 12 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
Apr 08 Python
Python中and和or如何使用
May 28 Python
python logging模块的使用详解
Oct 23 Python
Python 求向量的余弦值操作
Mar 04 Python
python入门学习关于for else的特殊特性讲解
Nov 20 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中overload与override的区别
2017/02/13 PHP
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
浅谈Javascript事件模拟
2012/06/27 Javascript
JavaScript面向对象(极简主义法minimalist approach)
2012/07/17 Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
2012/09/19 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
通过AJAX的JS、JQuery两种方式解析XML示例介绍
2013/09/23 Javascript
jquery获取radio值实例
2014/10/16 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
基于javascript实现简单的抽奖系统
2020/04/15 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
Nginx 配置多站点vhost 的方法
2018/01/07 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
js实现json数组分组合并操作示例
2019/02/12 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
vue+render+jsx实现可编辑动态多级表头table的实例代码
2020/04/01 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
python 判断自定义对象类型
2009/03/21 Python
python数据结构之二叉树的统计与转换实例
2014/04/29 Python
python文件与目录操作实例详解
2016/02/22 Python
Python实现树莓派WiFi断线自动重连的实例代码
2017/03/16 Python
Python语言描述连续子数组的最大和
2018/01/04 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
Python字典遍历操作实例小结
2019/03/05 Python
python模块如何查看
2020/06/16 Python
Python进行统计建模
2020/08/10 Python
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
二手房购房协议书范本
2014/10/05 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python