これは、 AJAX、サブドメイン、および 200 OK 応答(およびJavaScript 同一生成元ポリシー - 異なるサブドメインにどのように適用されますか? )と非常によく似た質問ですが、ひねりがあります。次のような状況があります。
- ドメイン (www.example.com)
- サブドメインのページ (sd.example.com/cat/id)
- 別のサブドメイン (cdn.example.com) に対して ajax スタイルのリクエストを行う必要がある
前述の質問とは対照的に、私が求めているのは画像です。
- 画像の GET リクエスト (jQuery $.load() を使用)
これは問題なく動作しているようです。問題なく動作していたので、誰かが Firebug でエラーを生成していると指摘したとき、同一生成元ポリシーがすぐには思い浮かびませんでした。
- 画像は localhost でロードされます ( test.sd.example.com/cat/idの apache VirtualHost URL)
ただし、リンクした質問のおかげで思い浮かんだので、本番環境ではこれが確実に機能しないのではないかと心配しています。
- これは本番環境で引き続き機能しますか? また、クロスブラウザーで確実に機能しますか?
回答: いいえ --機能しているように見えただけです。それは本当ではなかった
- そうでない場合、どうすれば修正できますか? (私はJSONP画像ができるとは思わない...できますか?)
回答: 画像の src の設定を続行し、load イベントがトリガーされるまで表示を待ちます。
- もしそうなら、どうすれば 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