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简单遍历字典及删除元素的方法
Sep 18 Python
Python编写一个闹钟功能
Jul 11 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
python实现图像全景拼接
Mar 27 Python
使用keras实现densenet和Xception的模型融合
May 23 Python
pycharm导入源码的具体步骤
Aug 04 Python
Pythonic版二分查找实现过程原理解析
Aug 11 Python
Pycharm添加虚拟解释器报错问题解决方案
Oct 13 Python
Python 利用flask搭建一个共享服务器的步骤
Dec 05 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
十大“创意”战术!
2020/03/04 星际争霸
PHP中auto_prepend_file与auto_append_file用法实例分析
2014/09/22 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
JavaScript中的undefined学习总结
2013/11/30 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
jQuery Ajax File Upload实例源码
2016/12/12 Javascript
vue.js事件处理器是什么
2017/03/20 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
vue中的scope使用详解
2017/10/29 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
[34:10]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
python利用beautifulSoup实现爬虫
2014/09/29 Python
python关闭windows进程的方法
2015/04/18 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Python实现抢购IPhone手机
2018/02/07 Python
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
数控专业个人求职信范文
2014/02/05 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
专项法律服务方案
2014/06/11 职场文书
加油口号大全
2014/06/13 职场文书
单位工作证明范文
2014/09/14 职场文书
2014年施工员工作总结
2014/11/18 职场文书
幼儿园小班教师个人工作总结
2015/02/06 职场文书
数学备课组工作总结
2015/08/12 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python