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 相关文章推荐
Python实现列表转换成字典数据结构的方法
Mar 11 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
python删除服务器文件代码示例
Feb 09 Python
Python实现正整数分解质因数操作示例
Aug 01 Python
解决python "No module named pip" 的问题
Oct 13 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
pycharm 实现显示project 选项卡的方法
Jan 17 Python
Python远程视频监控程序的实例代码
May 05 Python
安装docker-compose的两种最简方法
Jul 30 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
理解Django 中Call Stack机制的小Demo
Sep 01 Python
总结python 三种常见的内存泄漏场景
Nov 20 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
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
CodeIgniter使用smtp服务发送html邮件的方法
2015/06/10 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
如何判断图片地址是否失效
2007/02/02 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
JavaScript canvas绘制折线图
2020/02/18 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
[01:14:30]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第二场 8.20.mp4
2019/08/22 DOTA
python下函数参数的传递(参数带星号的说明)
2010/09/19 Python
python批量生成本地ip地址的方法
2015/03/23 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python实现flappy bird游戏
2018/12/24 Python
TensorFlow实现简单的CNN的方法
2019/07/18 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
python实现输入的数据在地图上生成热力图效果
2019/12/06 Python
Python集合操作方法详解
2020/02/09 Python
详解Python IO口多路复用
2020/06/17 Python
四风自我剖析材料思想汇报
2014/10/01 职场文书
实习证明格式范文
2014/10/14 职场文书
2015元旦标语横幅
2014/12/09 职场文书
2015年全民国防教育日活动总结
2015/03/23 职场文书
Java tomcat手动配置servlet详解
2021/11/27 Java/Android
vue实现简易音乐播放器
2022/08/14 Vue.js