flask如何請求別的網站

lcc發表於2021-09-11

flask如何請求別的網站

跨域檔案上傳的時候,瀏覽器會自動發起一個 OPTIONS 方法到伺服器,現在後臺解決前端跨域解決前端跨域請求的問題。

客戶端發起的這個 OPTIONS 可以說是一個“預請求”,用於探測後續真正需要發起的跨域 POST 請求對於伺服器來說是否是安全可接受的,因為跨域提交資料對於伺服器來說可能存在很大的安全問題。

請求頭 Access-Control-Request-Method 用於提醒伺服器在接下來的請求中將會使用什麼樣的方法來發起請求。

Access-Control-Allow-Method 和 Access-Control-Allow-Origin 分別告知客戶端,伺服器允許客戶端用於跨域的方法和域名。

示例

下載flask_cors 包

pip install flask-cors

使用flask_cors的CORS,程式碼示例

from flask_cors import *

app = Flask(__name__)
CORS(app, supports_credentials=True)

實現

現在我們看看解決問題的實際案例

from flask_cors import CORS
app = Flask(__name__,)
# r'/*' 是萬用字元,讓本伺服器所有的URL 都允許跨域請求
CORS(app, resources=r'/*')
# 上傳檔案
@uploadFiles.route('/upload', methods=['POST'])
def uploadFile():
    result_text = {"statusCode": 200,"message": "檔案上傳成功"}
    response = make_response(jsonify(result_text))
    response.headers['Access-Control-Allow-Origin'] = '*'
    response.headers['Access-Control-Allow-Methods'] = 'OPTIONS,HEAD,GET,POST'
    response.headers['Access-Control-Allow-Headers'] = 'x-requested-with'
    return response

目中路由是多級路由,透過主路由跳轉到子路由,一開始的時候,允許跨域的配置在上傳檔案的子路由中進行設定,發現OPTIONS請求響應值中並沒有返回預期的標頭檔案,將跨域設定在主路由中設定即可。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2331/viewspace-2836947/,如需轉載,請註明出處,否則將追究法律責任。

相關文章