python bottle框架 解决跨域问题的正确方式

经查询,网上有几种说法

https://www.cnblogs.com/EmptyFS/p/6138923.html

我首先查到的就是这个,我采用了文中所说的修改源码的方式,
但是经测试发现,修改源码依然无效

然后我又查询到下面这个链接

https://www.cnblogs.com/EmptyFS/p/6138923.html

文中的解决方法在加一个钩子函数,在请求前进行一定修改

但是改完还是报错

正确的处理方式为下面的代码

在钩子函数中对请求前后都进行处理进行处理


@hook('before_request')
def validate():
    REQUEST_METHOD = request.environ.get('REQUEST_METHOD')

    HTTP_ACCESS_CONTROL_REQUEST_METHOD = request.environ.get('HTTP_ACCESS_CONTROL_REQUEST_METHOD')
    if REQUEST_METHOD == 'OPTIONS' and HTTP_ACCESS_CONTROL_REQUEST_METHOD:
        request.environ['REQUEST_METHOD'] = HTTP_ACCESS_CONTROL_REQUEST_METHOD


@hook('after_request')
def enable_cors():
    response.headers['Access-Control-Allow-Origin'] = '*'
    # response.headers['Access-Control-Allow-Methods'] = 'GET,POST,PUT,DELETE,OPTIONS'
    response.headers['Access-Control-Allow-Headers'] = '*'

原文地址:https://www.cnblogs.com/huchong/p/10078033.html