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之从if开始语句的征程
Sep 14 Python
Python multiprocessing.Manager介绍和实例(进程间共享数据)
Nov 21 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
Python入门_学会创建并调用函数的方法
May 16 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
May 16 Python
Python列表切片常用操作实例解析
Dec 16 Python
python DataFrame转dict字典过程详解
Dec 26 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
Pytorch之finetune使用详解
Jan 18 Python
Python数据结构dict常用操作代码实例
Mar 12 Python
Python3基于print打印带颜色字符串
Jul 06 Python
Python中 range | np.arange | np.linspace三者的区别
Mar 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
中国广播史趣谈 — 几个历史第一次
2021/03/01 无线电
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
学习php设计模式 php实现策略模式(strategy)
2015/12/07 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
jquery实用代码片段集合
2010/08/12 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
Underscore.js 1.3.3 中文注释翻译说明
2015/06/25 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
解决vue-router中的query动态传参问题
2018/03/20 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
Python 3.x基于Xml数据的Http请求方法
2018/12/28 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
python 抓取知乎指定回答下视频的方法
2020/07/09 Python
美国家居用品和厨具购物网站:DealsDot
2019/10/07 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
24岁生日感言
2014/01/13 职场文书
关于读书的活动方案
2014/08/14 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
工程质检员岗位职责
2015/04/08 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
楚门的世界观后感
2015/06/03 职场文书
2016新年致辞
2015/08/01 职场文书
Python图像处理之图像拼接
2021/04/28 Python
python3实现无权最短路径的方法
2021/05/12 Python
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js