配置了一个接口,发现被浏览器拦截了,知道了跨域的概念,接口用的flask写的,各种折腾,找到了 flask-cors
,我是直接使用装饰器就解决了我的问题。
一、什么是跨域?
跨域是指:浏览器A从服务器B获取的静态资源,包括Html、Css、Js,然后在Js中通过Ajax访问C服务器的静态资源或请求。即:浏览器A从B服务器拿的资源,资源中想访问服务器C的资源。
同源策略是指:浏览器A从服务器B获取的静态资源,包括Html、Css、Js,为了用户安全,浏览器加了限制,其中的Js通过Ajax只能访问B服务器的静态资源或请求。即:浏览器A从哪拿的资源,那资源中就只能访问哪。
同源是指:同一个请求协议(如:Http或Https)、同一个Ip、同一个端口,3个全部相同,即为同源。
二、安装flask-cors
pip install flask-cors
flask-cors 的离线安装包
flask-cors有两种使用方式,因为我直接用的装饰器,所以另外一个没研究。可以参考下面的文章。
方式 | 范围 | 说明 |
---|---|---|
@cross_origin装饰器 | 配置单个路由 | 适用于配置特定的API接口 |
CORS函数 | 配置全局API接口 | 适用于全局的API接口配置 |
三、使用@cross_origin装饰器
from flask_cors import cross_origin@app.route("/")
@cross_origin()
def helloWorld():return "Hello, cross-origin-world!"
参考:
https://blog.csdn.net/qq_37193537/article/details/90787198
https://www.cnblogs.com/cwp-bg/p/9256892.html