0
我正在將一張圖像注入一個畫布,我必須通過將cookie傳遞給我的請求來安全地獲取圖像。我的問題是,當src被設置時,Image構造函數似乎沒有發送包含請求的cookie。 cookies不能通過js訪問,它們由瀏覽器發送。如何在Image()構造函數中發送餅乾
var img = new Image();
img.setAttribute('crossOrigin', 'anonymous');
validateUrl(originalUrl, function (validatedUrl) {
img.src = validatedUrl; //GET fails after this happens
});
img.onload = function() {
drawImageProp(context, img);
}
當我把網址放入
標籤時,它顯示正常 - 在這種情況下,檢查網絡調用我可以看到cookie隨請求發送。在這種情況下,服務器給我一個錯誤,因爲它沒有得到cookie,我試圖弄清楚他們爲什麼不去。在這種情況下,請求甚至不會跨域。 –
Tantelope
@TanyaMounitsyna - 我在jsFiddle中運行自己的測試,並在手動創建圖像時發送cookie。所以,我不知道如何重現您的問題。在我的測試中,我必須在URL的末尾添加一個隨機查詢參數,以便擊敗圖像緩存以便測試。你確定你沒有緩存問題嗎? – jfriend00
@TanyaMounitsyna - 如果您在圖片上設置了「crossorigin」屬性,則cookie不會與請求一起發送。這就是該功能如何寫入工作。請參閱此處的「匿名」說明:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-crossorigin – jfriend00