Ajax, поддомен, 200 ответ и изображения - хорошо? - PullRequest
0 голосов
/ 19 ноября 2010

Этот вопрос очень похож на AJAX, Субдомены и ответ 200 OK Политика одинакового происхождения JavaScript - как это применимо к различным поддоменам? ), но с твист. У меня есть ситуация, в которой:

  • Домен (www.example.com)
  • Где страница на поддомене (sd.example.com/cat/id)
  • Требуется отправлять запросы в стиле ajax на другой поддомен (cdn.example.com)

В отличие от вышеупомянутого вопроса, я запрашиваю изображения.

  • GET запросы изображений (используя jQuery $ .load ())

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

  • Изображения ARE загрузка на локальном хосте (URL-адрес apache VirtualHost для test.sd.example.com/cat/id)

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

  • Будет ли это продолжать работать в производственной среде - и будет ли оно надежно работать в кросс-браузерном режиме?

Ответ: Нет - он только выглядел так, как будто он работал; это не было действительно

  • Если нет, то как мне это исправить? (Я не думаю, что могу JSONP изображения ... я могу?)

Ответ: Продолжайте устанавливать src изображения и ждите, пока не появится событие загрузки.

  • Если так, как я могу остановить ошибки Firebug? Если я могу. (Они напугали других разработчиков.)

Ответ: То же, что и выше - избавиться от шага, где фактически выполняется GET-запрос для файла изображения.

Исходный код

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

Ответы [ 2 ]

1 голос
/ 19 ноября 2010

Почему бы не вставить изображения на страницу, создав элементы изображения и установив src.что может быть проще?

edit: ... через javascript

Я не уверен, что это совершенно верно, но в jquery:

img = $('<img>');
img.attr('src', 'http://somewhere.com/some_image.jpg');
$('#place_to_add').append(img);
img.ready(fade_into_next);
0 голосов
/ 19 ноября 2010
...