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

时间:2023-03-08 20:39:07
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'] = '*'