Эта проблема, похоже, не связана с вызовом Ajax. Ваш код работает с другим URL-адресом изображения .
Проблема, похоже, связана с рассматриваемой SVG. Включение через тег img
отлично работает. Непосредственное включение разметки SVG в HTML показывает ту же проблему, что и вы.
Chrome и Firefox отображают большое окно просмотра, но не отображают содержимое изображения.
Рассматриваемый SVG ставит перед всеми тегами SVG префикс пространства имен ns0
. Как предложил комментатор, удаление этого префикса из всех тегов прошло успешно - Chrome и Firefox отображают изображение.
Однако простая предложенная замена текста является слабым решением: если префикс изменится (это произвольная строка, заданная создателем SVG), изображение снова не будет отображаться. Кроме того, замена текста может удалить вхождения ns0
в источнике изображения, которые не являются префиксом пространства имен, что может привести к повреждению изображения или изменению его содержимого.
Хотя я не смог найти ответ на канонический способ вставки файлов SVG такого типа, я бы порекомендовал использовать тег изображения и указать в качестве источника URL.
<img id="svgContainer">
var img = document.getElementById("svgContainer");
img.src = "https://example.com/image.svg";