Ajax, subdomínios, 200 resposta e imagens - ok?
-
26-09-2019 - |
Pergunta
Esta é uma pergunta muito semelhante a Ajax, subdomínios e a resposta 200 OK (e Javascript Mesma política de origem - Como ela se aplica a diferentes subdomínios?), mas com uma reviravolta. Eu tenho uma situação em que:
- Um domínio (www.example.com)
- Onde a página em um subdomínio (sd.example.com/cat/id)
- Precisa fazer solicitações no estilo Ajax para outro subdomínio (cdn.example.com)
Em contraste com a pergunta acima mencionada, o que estou solicitando são imagens.
- Obtenha solicitações de imagens (usando jQuery $ .load ())
Isso parece estar funcionando muito bem. Porque estava funcionando muito bem, quando alguém apontou, estava gerando erros no Firebug, a política da mesma origem não me ocorreu imediatamente.
- Imagens SÃO Carregando no localhost (URL do Apache VirtualHost de test.sd.example.com/cat/id)
No entanto, agora que se lembrava daquela pergunta que vinculei, estou preocupado que isso não funcione de maneira confiável na produção.
- Vai isso Prosseguir Para trabalhar em um ambiente de produção-e ele funcionará com confiabilidade de navegador?
Resposta: Não - apenas visto Como se estivesse funcionando; Não foi realmente
- Caso contrário, como faço para consertar isso? (Eu não acho que posso jsonp imagens ... posso?)
Resposta: Continue configurando o SRC da imagem e aguarde para mostrar até que o evento de carregamento seja acionado.
- Se sim, como faço para interromper os erros do Firebug? Se eu puder. (Eles estão assustando colegas.)
RESPOSTA: O mesmo que acima - Livre -se da etapa, onde está realmente fazendo solicitação de arquivo de imagem.
Código inicial
function(imageUrl, placeTarget){
var i = new Image();
var img = $(i);
img.hide()
.load(imageUrl, function(e){
// console.log("loadImage: loaded");
placeTarget.attr("src", imageUrl);
return true;
})
.error(function(){
// error handling - do this part
// console.log("loadImage: error");
return false;
});
return;
} // loadImage
Solução
Por que não inserir as imagens na página criando elementos de imagem e definindo o SRC. O que poderia ser mais simples?
EDIT: ... via JavaScript
Não tenho certeza se isso é exatamente certo, mas no jQuery:
img = $('<img>');
img.attr('src', 'http://somewhere.com/some_image.jpg');
$('#place_to_add').append(img);
img.ready(fade_into_next);
Outras dicas
Verifique este post: Javascript Mesma política de origem - Como ela se aplica a diferentes subdomínios?