我有一個用python/flask寫的API,我想只允許幾個URL訪問這個API。 JavaScript調用是微不足道的jQuery,如:針對多個URL的Flask訪問控制允許來源地址
$.ajax({
url: "http://myApi.com/api/doit",
dataType:'JSON',
success:function(data){
console.log("DEBUG: yeeeeaaaahhh!");
},
error:function(xhr){
console.log("Error occured! status: " + xhr.status + ", text: " + xhr.statusText);
}
});
大部分的解決方案,主要是這裏都是相當令人失望總是提供設置Access-Control-Allow-Origin : '*'
或啓動鉻禁用檢查。當然它有效,但這不是目的。 關於w3的規範說分號分隔的列表應該可以工作,但它不會。也逗號分隔列表失敗。 從燒瓶本身有http://flask.pocoo.org/snippets/56/,但它不適用於多個URL。在評論中有一個建議:h.extend([("Access-Control-Allow-Origin", orig) for orig in origin])
但它仍然無法正常工作。
我唯一的解決方案是檢查代碼的來源,如果它在我的白名單上,在標題Access-Control-Allow-Origin : '*'
。這是一種解決方法,但我不太喜歡它。你能建議一個更優雅的解決方案嗎?