python bottle框架 解決跨域問題的正確方式

聽風。發表於2018-12-06

經查詢,網上有幾種說法

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'] = '*'

相關文章