Перекрестное происхождение на ткани. Image.fromURL ломает CORS даже с набором crossOrigin - PullRequest
0 голосов
/ 06 марта 2019

Используя fabric.js, я пытаюсь загрузить фоновое изображение из облака Amazon / URL s3.

fabric.Image.fromURL(imgURL, function(img) {
    canvas.setBackgroundImage(img, canvas.renderAll.bind(canvas),
    {
        scaleX: canvas.width / img.width,
        scaleY: canvas.height / img.height
    });
}, {crossOrigin: 'anonymous'});

Когда присутствует crossOrigin, я получаю стандартную ошибку

Access to image at '...' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Когда я удаляю кроссОригин анон.Это загрузит изображение, однако оно портит холст, поэтому я не могу использовать toDataURL.

CORS Headers

1 Ответ

1 голос
/ 06 марта 2019

Когда я удаляю кроссОригин анон.Он загрузит изображение, однако портит холст, поэтому я не могу использовать toDataURL.

Это позиция по умолчанию.Если вы не укажете это, то это не позволит вам делать что-либо, требующее разрешения CORS.

Когда присутствует crossOrigin, я получаю стандартную ошибку

Доступ кизображение в '...' от источника 'http://localhost:3000' заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.

anonymous означает «Проверить разрешение CORS, но не отправлять учетные данные пользователя другому источнику».

Таким образом, вместо просто запрещается доступ к функциям, для которых требуется разрешение CORS, сначалапроверяет разрешение CORS, обнаруживает, что у вас его нет, затем запрещает доступ.

Вам необходим сервер, с которого запрашивается изображение, чтобы предоставить вашему JavaScript разрешение на чтение данных.используя CORS.

...