跨域请求

CORS是一个W3C标准,全称是“跨域资源共享”(Cross-origin resource sharing)。

跨域资源共享 CORS 详解

Flask-CORS

Flask-CORS

Flask扩展,用于处理Cross Origin Resource Sharing (CORS), 允许 cross-origin AJAX 操作.

Flask-CORS

flask 跨域访问装饰器实现

web开发进入前后端分离的阶段

后端往往只需要吐api数据就ok

一般纯的api接口需要考虑跨域访问问题

下面是简单的跨域访问装饰器在flask中的实现示例

from functools import wraps
from flask import make_response


def allow_cross_domain(fun):
    @wraps(fun)
    def wrapper_fun(*args, **kwargs):
        rst = make_response(fun(*args, **kwargs))
        rst.headers['Access-Control-Allow-Origin'] = '*'
        rst.headers['Access-Control-Allow-Methods'] = 'PUT,GET,POST,DELETE'
        allow_headers = "Referer,Accept,Origin,User-Agent"
        rst.headers['Access-Control-Allow-Headers'] = allow_headers
        return rst
    return wrapper_fun


@app.route('/hosts/')
@allow_cross_domain
def domains():
    pass

什么是跨域

跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。

浏览器的同源策略