Задача следующая получить картинку по имеющейся ссылке, закодировать в base64 и отправить на свой сервер.
Запнулся на получении картинки с сервера, я вижу в отладчике что картинка получена, точнее байты, но ответ на запрос все равно попадает в fail() :
$.ajax({
type: 'GET',
url: "https://www.w3schools.com/css/img_viewport2.png",
dataType: 'image/jpg',
success: function(data) {
alert("ok");
}
}).fail(function(XHR) {
alert("false");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Вы пытаетесь сделать кроссдоменный запрос да и ещё по https.
Самый простой вариант - это создать у себя на странице <img> засунуть туда src, а потом вставить в канвас и декодировать. Сама функция есть уже на stackOwerflow
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}
img = document.getElementById('img');
console.log(getBase64Image(img));
<img id="img" src="http://es.biznestext.com/image/cache/catalog/logo.png_crop_211.50632911392404_216.99999999999997-275x275.png" style="display:none">
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники