Flask解决跨域的问题示例代码


Posted in Python onFebruary 12, 2018

跨域文件上传的时候,浏览器会自动发起一个 OPTIONS 方法到服务器,现在后台解决前端跨域解决前端跨域请求的问题

客户端发起的这个 OPTIONS 可以说是一个“预请求”,用于探测后续真正需要发起的跨域 POST 请求对于服务器来说是否是安全可接受的,因为跨域提交数据对于服务器来说可能存在很大的安全问题

请求头 Access-Control-Request-Method 用于提醒服务器在接下来的请求中将会使用什么样的方法来发起请求

Access-Control-Allow-Method 和 Access-Control-Allow-Origin 分别告知客户端,服务器允许客户端用于跨域的方法和域名

示例

下载flask_cors 包

pip install flask-cors

使用flask_cors的CORS,代码示例

from flask_cors import *

app = Flask(__name__)
CORS(app, supports_credentials=True)

以下是Flask-CORS 的官方文档链接

http://flask-cors.readthedocs.io/en/latest/

实现

现在我们看看解决问题的实际案例

from flask_cors import CORS
app = Flask(__name__,)
# r'/*' 是通配符,让本服务器所有的URL 都允许跨域请求
CORS(app, resources=r'/*')
# 上传文件
@uploadFiles.route('/upload', methods=['POST'])
def uploadFile():
  result_text = {"statusCode": 200,"message": "文件上传成功"}
  response = make_response(jsonify(result_text))
  response.headers['Access-Control-Allow-Origin'] = '*'
  response.headers['Access-Control-Allow-Methods'] = 'OPTIONS,HEAD,GET,POST'
  response.headers['Access-Control-Allow-Headers'] = 'x-requested-with'
  return response

使用POSTMAN请求

Flask解决跨域的问题示例代码

遇到的问题

由于项目中路由是多级路由,通过主路由跳转到子路由,一开始的时候,允许跨域的配置在上传文件的子路由中进行设置,发现OPTIONS请求响应值中并没有返回预期的头文件,将跨域设置在主路由中设置即可

总结

以上就是本文关于Flask解决跨域的问题示例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
MySQL适配器PyMySQL详解
Sep 20 Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
python os.path模块常用方法实例详解
Sep 16 Python
python 利用for循环 保存多个图像或者文件的实例
Nov 09 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
使用pygame编写Flappy bird小游戏
Mar 14 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
Python模拟伯努利试验和二项分布代码实例
May 27 Python
带你学习Python如何实现回归树模型
Jul 16 Python
python制作一个简单的gui 数据库查询界面
Nov 19 Python
Python数据清洗工具之Numpy的基本操作
Apr 22 Python
tensorflow实现对图片的读取的示例代码
Feb 12 #Python
python中数据爬虫requests库使用方法详解
Feb 11 #Python
python 接口测试response返回数据对比的方法
Feb 11 #Python
使用Python读取大文件的方法
Feb 11 #Python
python脚本作为Windows服务启动代码详解
Feb 11 #Python
分析Python读取文件时的路径问题
Feb 11 #Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 #Python
You might like
攻克CakePHP系列一 连接MySQL数据库
2008/10/22 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
php实现对象克隆的方法
2015/06/20 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
JavaScript 基础篇(一)
2012/03/30 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
对js关键字命名的疑问介绍
2014/04/25 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
2015/08/10 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
python和pyqt实现360的CLable控件
2014/02/21 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
python中嵌套函数的实操步骤
2019/02/27 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
python根据时间获取周数代码实例
2019/09/30 Python
Django 框架模型操作入门教程
2019/11/05 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
班级入场式解说词
2014/02/01 职场文书
作弊检讨书1000字
2014/02/01 职场文书
办公自动化毕业生求职信
2014/03/09 职场文书
社区文化建设方案
2014/05/02 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
论群众路线学习笔记
2014/11/06 职场文书
运动会通讯稿200字
2015/07/20 职场文书
2015年学校总务工作总结
2015/07/20 职场文书