настройка innerHTML - изображение не отображается, но - PullRequest
1 голос
/ 04 августа 2011

У меня есть страница, где я извлекаю html из ajax-запроса и затем вставляю его в div.HTML-код попадает в div правильно, за исключением того, что изображение не отображается, но альтернативный текст для него.вот HTML:

<div class='fltright'><img src='images/esl.jpg' alt="English as a Second Language"/></div><!-- end fltright --><p><span class='large'>Lorem ipsum dolor sit amet,</span> consectetur adipiscing elit. Cras tempor semper tortor. </p>

есть ли причина, по которой изображение не будет отображаться, в то время как альтернативный текст будет отображаться?

AJAX CODE:

function getData(fileName){
    fileLoc = encodeURI("assets/"+fileName+".html")
    //alert(fileLoc);
    request.onreadystatechange = processData;
    request.open("GET",fileLoc, false);
    request.send();
    //alert(request.readyState);
    //alert(response);
    //alert(request.status);
}
function processData(){
    if (request.readyState==4){
        if (request.status==200){
            try{
                response = request.responseText;
                document.getElementsByClassName('content')[0].innerHTML = response;
            } catch(e){
                alert("Error: " +e.description);
            }
        }
        else{
            alert("An error has occured making the request");
        }
    }
}

Ответы [ 3 ]

2 голосов
/ 04 августа 2011

Я бы проверил, что изображение действительно отображается в этих сенариях. Хороший способ проверить это - щелкнуть правой кнопкой мыши и «Просмотреть изображение ...». Затем ваш браузер запросит конкретное изображение.

Если вы получите Not Found запрошенное изображение images / esl.jpg не найдено на этом сервере, значит ваш URL неверный.

Если вы получаете Forbidden У вас нет прав для доступа к images / esl.jpg на этом сервере. Тогда это проблема с разрешениями. Как сказал Эндофаг, вы захотите установить правильные разрешения для файлов и каталогов, чтобы процесс Apache мог просматривать это изображение.

0 голосов
/ 04 августа 2011

Мне кажется, что изображение в действительности находится в assets / images / esl.jpg, а не в images / esl.jpg

Рассмотрим разницу между тем, где находится ваша страница и страницей, которую вы просматриваете ...

0 голосов
/ 04 августа 2011

Часто при использовании AJAX вы забываете, где находятся ваши изображения относительно того, где находится документ. Попробуйте сослаться на изображение из корневого каталога, как это ..

.. / images / esl.jpg

...