2013-07-18 6 views
0

Я пытающийся работать, существует ли изображение в JavaScript, используя код ниже:Javascript проверить, существует ли файл

var image_url = 'http://www.tester.co.uk/shop/images/product_thumbs/t_' + prod.images.toLowerCase() + '.jpg'; 

     $.ajax({ 
      url: image_url, 
      type:'HEAD', 
      error: 
      function(msg_no){ 
       console.log("fail."); 
       markup += "<td class='movie-image'><img src='/shop/html_templates/files/images/default-category-image.gif'/></td>"; 
      }, 
      success: 
      function(msg_yes){ 
       console.log("success."); 
       markup += "<td class='movie-image'><img src='/shop/images/product_thumbs/t_" + prod.images.toLowerCase() + ".jpg'/></td>"; 
      } 
     }); 

На 404 страницах моего журнала консоли отображается сообщение не получится, однако на страницах возвращающимся 200 Я не получаю сообщение об успехе.

Я надеюсь, что кто-то может посоветовать мне, где я ошибаюсь!

Благодаря

+0

Конечно, если файл не существует, и сервер возвращает '200', это сервер, который делает это неправильно –

+0

Привет, нет изображения не является кросс домен. – hlh3406

+0

Привет, он предназначен для поиска, поэтому он возвращает несколько запросов за один раз, тогда он показывает 404 для изображений, которые не существуют и не могут быть отображены, - и в консоли отображается сообщение, которое я поставил выше - «сбой» - но тогда, если изображение действительно существует, оно отображает 200, но не вводит мою функцию успеха и отображает консоль.log (успех) – hlh3406

ответ

3

, глядя на то, что вы на самом деле делаете, это может быть мудрее для Вас, чтобы не сделать это ajax и вместо того, чтобы полагаться на Image, который сгенерирует ошибку если возвращаемые данные а не изображение (понимаемое браузером). не

var img = new Image(); 
img.onerror = function (msg_no) { 
    console.log("fail."); 
    markup += "<td class='movie-image'><img src='/shop/html_templates/files/images/default-category-image.gif'/></td>"; 
} 
img.onload = function (msg_yes) { 
    console.log("success."); 
    markup += "<td class='movie-image'><img src='/shop/images/product_thumbs/t_" + prod.images.toLowerCase() + ".jpg'/></td>"; 
} 
img.src = image_url; // fetch after listeners attached 
+0

Хорошо - я отдам это - спасибо! – hlh3406