私は午前中ずっとこのテーマについて読んでいましたが、結果にはまだ混乱しています.
私が理解していることから、JQuery .ajax .get は datatype="xml" を使用してクロスブラウザーで動作しないはずですが、次の rs フィードは動作します
var rssurl = 'http://gdata.youtube.com/feeds/base/videos/-/trees?orderby=published&alt=rss';
しかし、別のフィードを呼び出そうとしても機能しません。解析エラーが発生します。
var rssurl = 'http://api.flickr.com/services/feeds/photos_public.gne?tags=trees&format=rss2'
このフィードは機能しませんが、ローカルにコピーして呼び出すと機能します。これが、クロスドメインの問題だと思う理由です。
また、Fiddler で表示すると、フィードが実際にダウンロードされていることがわかります。クロスドメイン呼び出しの場合、なぜこれが起こるのでしょうか?フィードがプルされる前に停止するのでしょうか?
フィードをプルするコードの下。
$.ajax({
type: "GET",
url: rssurl,
dataType: "xml",
success: function(data, textStatus, jqXHR) {
document.write("got the feed: "+ textStatus+"
");
var $xml = $(data);
$xml.find("item").each(function() {
var $this = $(this),
document.write( $this.find("title").text() );
});
},
error: function(jqXHR, textStatus, errorThrown){
alert('failure');
console.log('status: ' + textStatus);
if (textStatus == 'error')
console.log(errorThrown);
}
);
だから私の質問に:
- あるフィードに対してクロスドメイン呼び出しを行うことができ、別のフィードではできないのはなぜですか。どっちも禁止じゃないの?
- 2 番目のフィードにエラーが含まれていた場合、ローカルで機能するのはなぜですか?
- あぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
乾杯