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中字典(dict)和列表(list)的排序方法实例
Jun 16 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
Python实现图片转字符画的示例
Aug 22 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
创建Django项目图文实例详解
Jun 06 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
python实现低通滤波器代码
Feb 26 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
python如何删除文件、目录
Jun 23 Python
浅谈对python中if、elif、else的误解
Aug 20 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 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
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
DEDECMS首页调用图片集里的多张图片
2015/06/05 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
jQuery中[attribute]选择器用法实例
2014/12/31 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
7个有用的jQuery代码片段分享
2015/05/19 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
[47:22]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python中的yield使用方法
2014/02/11 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
Python 变量类型详解
2018/10/10 Python
Django框架模板文件使用及模板文件加载顺序分析
2019/05/23 Python
python算法题 链表反转详解
2019/07/02 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
交通事故协议书
2014/04/15 职场文书
初婚初育证明范本
2015/06/18 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
Nginx 匹配方式
2022/05/15 Servers