2015-06-06 3 views
1

У меня есть сценарий вроде этого:JQuery изображение URL после перенаправления

var img = $("<img />").attr('src', images[i]).load(function() { 
     alert(this.src); // old url 
}) 

Иногда сервер будет бросать код 301 Moved Permanently или 302 Moved Temporarily HTTP, и фактическое изображение, загруженное будет отличаться. Как я могу:

  • обнаружить, если Перенаправление произошло
  • найти новый URL - this.src не принимает перенаправлять во внимание
  • возможно предотвратить новый URL из загружаемых

?


Согласно How to prevent ajax requests to follow redirects using jQuery, последнее невозможно. Как узнать новый URL?

+0

В какой ситуации вы получаете редирект? Что означает «иногда»? Почему вы не хотите следовать переадресации? –

+0

@ LutzHorn Непривлекательная магия за проектом, не может обойти это – Robus

+0

Хорошо, но почему вы не хотите следовать перенаправлению? –

ответ

0

Вы могли бы попытаться получить статус, используя запрос AJAX, что-то вроде этого:

var img = new Image(); 
$(img).load(
'someimage.png', 
function(response, status, xhr) { 
    if (xhr.status == 200) { 
     $('#img').attr('src','someimage.png') 
    } else { 
     //do something with xhr.status 
    } 
}); 
+0

Это всегда возвращает 200, коды 301/302 являются прозрачными – Robus

Смежные вопросы