Элемент Canvas с изображением, загруженным из aws s3 с использованием cors, не работает при первой загрузке пары

Итак, у меня есть настройки cors на моем AWS S3 bucket:


  
    *
    GET
  

В моем HTML


В моем JavaScript я загружаю изображение и помещаю его в изображение холста.

var outlineImage = new Image();
outlineImage.crossOrigin = '';
outlineImage.src = drawing_image;
outlineImage.onload = function() {
  var canvasDiv = document.getElementById('explain_canvas');
  var canvas = document.createElement('canvas');
  canvas.setAttribute('width', 722);
  canvas.setAttribute('height', 170);
  canvas.setAttribute('id', 'canvas_'+canvas_element);
  canvas.setAttribute('name', 'canvas_'+canvas_element);
  canvasDiv.appendChild(canvas);
  if(typeof G_vmlCanvasManager != 'undefined') {
    canvas = G_vmlCanvasManager.initElement(canvas);
  }
  var context = canvas.getContext("2d");
  context.drawImage(outlineImage, 10, 10, 600, 150);
}

Я загружаю контекст, чтобы это было совместимо с Internet Explorer.

Здесь моя проблема. Когда страница загружается первые два раза, появляется эта ошибка:

Cross-origin image load denied by Cross-Origin Resource Sharing policy.

Однако, когда я перезагружаю страницу пару раз, она в конечном итоге сработает и загрузит изображение Как только это будет сделано, я смог успешно вызвать toDataURL () для элемента canvas.

кто-нибудь знает, почему это произошло? Я сделал ошибку? Это проблема с AWS, и яПридется ли ждать пока Amazon исправит корс?

Это происходит во всех браузерах, которые я тестировал. В Chrome, Firefox, Safari, IE. На моем Mac, ПК и iPhone. Так что я неНе думаю, что это связано с браузером. Также это происходит локально и в производстве.

Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос