博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flak——跨域问题解决
阅读量:5174 次
发布时间:2019-06-13

本文共 1446 字,大约阅读时间需要 4 分钟。

Flask——跨域问题解决


背景:最近在使用Flak-restful+Vue来做一个app,将Vue打包在了一个安卓的壳子里面。但是这期间出现了一个比较有意思的问题——跨域。做后端开发的兄弟应该在前后端的分离项目中应该对这个问题司空见惯了。但是这个问题还是有一定的讨论意义,所以还是拿出来说一下。

1.CORS

  这个组件在很多框架的跨域问题使用中都用的到,比如django里面自带了这个中间件,需要的朋友可以百度一下,用起来很方便。flask使用的时候代码如下。

  首先得安装这个包,在flask中是没有自带的。

pip install flask_cors

  之后代码中使用如下:

1 from flask_cors import CORS2 3 app = Flask(__name__)4 CORS(app, supports_credentials=True)5 6 if __name__ == "__main__":7     app.run()

  当然了,如果不使用Flak-restful的话可以写一个中间件,对响应头进行操作,在这里就不进行过多描述了。

2.JSONP

  很多人在django restful-framework-api中习惯了使用jsonp的,但是flask自带的jsonify这个东西对于跨域而言好像并没有什么作用,因此这条路可以别想了。

3.配置options请求

  ***先说明这种方式是要和方法1一起使用的***

  众所周知在处理跨域的时候会先发一个options请求给服务端,这个请求可以说是一个“预请求”吧,用于探测后续真正需要发起的跨域 POST、PUT、PATCH 请求对于服务器来说是否是安全可接受的,因为跨域提交数据对于服务器来说可能存在很大的安全问题。

  所以在这里必须设置一下options请求来解决跨域问题。

 

1 class TabrResource(Resource):2 3     def options(self):4         return {
'Allow': '*'}, 200, \5 {
'Access-Control-Allow-Origin': '*',6 'Access-Control-Allow-Methods': 'HEAD, OPTIONS, GET, POST, DELETE, PUT',7 'Access-Control-Allow-Headers':8 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild',9 }

 

  这里我写了一个类,继承了Resource这个类,之后重写了options方法。通过接口的类继承TabrResource,所有的接口的类都会有一个options方法,来应对跨域请求。这个亲测有效。

*最后的最后说明一下,在Vue编译到安卓程序里面以后相当于是安卓程序里面嵌入了一个浏览器。可以配置一下把所有的跨域请求全部不拦截,直接放行。

 

转载于:https://www.cnblogs.com/XiaoBoya/p/11295284.html

你可能感兴趣的文章
【Mood-20】滴滤咖啡做法 IT工程师加班必备 更健康的coffee 项目经理加班密鉴
查看>>
读《构建之法-软件工程》第四章有感
查看>>
使用 Printf via SWO/SWV 输出调试信息
查看>>
.net 分布式架构之分布式锁实现(转)
查看>>
Problem E: Automatic Editing
查看>>
SpringBoot 使用 MyBatis 分页插件 PageHelper 进行分页查询
查看>>
《DSP using MATLAB》Problem 6.17
查看>>
微信公众平台开发实战Java版之如何网页授权获取用户基本信息
查看>>
一周TDD小结
查看>>
sizeof与strlen的用法
查看>>
Linux 下常见目录及其功能
查看>>
开源框架中常用的php函数
查看>>
nginx 的提升多个小文件访问的性能模块
查看>>
set&map
查看>>
集合类总结
查看>>
4.AE中的缩放,书签
查看>>
1.开发准备
查看>>
centos su命令
查看>>
CLR:基元类型、引用类型和值类型
查看>>
dubbo序列化hibernate.LazyInitializationException could not initialize proxy - no Session懒加载异常的解决...
查看>>