- 締切済み
クロスドメインについて
jqueryのjquery.xdomainajax.jsを使ってhtmlとは違うサーバーに置いてあるxmlを読み込んで 処理をしたいのですが、うまくいきません。 どうすればいいのか教えていただければ幸いです。 ご回答よろしくお願いいたします。 したい処理の内容は、xmlに記載してあるデータを読み込んで その内容をhtmlに表示させることです。 読み込ませるxmlは↓下記のような内容です。 <?xml version="1.0" encoding="utf-8"?> <channel> <item> <number>1234</number> <title>タイトル</title> <pubdate>2009/2/29 0:00:00</pubdate> <link>http://xxxx/xxx.html</link> <description>文章</description> <category>abc</category> </item> </channel> 読み込ませる側のhtmlソースは↓下記の内容です。 scriptでxmlを読み込ませた後に div#article-contentにxmlの内容をタグで括って追加されるような処理をしているのですが、 クロスドメインでxmlを違うサーバーに置いてやるとうまくいきません。 タグの生成はされないのですが、 success : function(data)の alert("success"); は表示されます。 **************** html ******************* ******************** head *********************** <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <script type="text/javascript" src="https://github.com/jamespadolsey/jQuery-Plugins/raw/master/cross-domain-ajax/jquery.xdomainajax.js"></script> *********************** script ************************** $.ajax({ url: 'http://xxxx/xxxx.xml', type: 'GET', dataType: 'xml', success : function(data){ alert("success"); $("item",data).each(function(){ $("div#article-content").append("<div class='article-section all-display "+$("category",this).text()+"' id='"+$("number",this).text()+"'><dl class='article-list'><dt class='article-title'><a href='" +$("link",this).text()+"' target='_blank'>" +$("title",this).text()+"</a></dt><dd class='article-description'>" +$("description",this).text()+"</dd><dd class='article-date'>" +pubdateText+"</dd></dl></div>"); }); } }); *********************** body ************************** <div id="article-content"> <!-- /article-content --></div>
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
→No.3 なるほどクロスドメイン用のプラグインを 使っているのですね。 失礼しました。
- dscripty
- ベストアンサー率51% (166/325)
[ANo.2] さん> 普通のAJAXはクロスドメインできないので JSONP にしてください。 とりあえず jquery.xdomainajax.js のソースよんでみて!
- 中村 拓男(@tknakamuri)
- ベストアンサー率35% (674/1896)
普通のAJAXはクロスドメインできないので JSONP にしてください。
- dscripty
- ベストアンサー率51% (166/325)
なんとなくだけど、その xml がおいてあるサーバが query.yahooapis.com からアクセスできないだけだったり? 手順を追って調べるなら、 まずは、ウェブブラウザが query.yahooapis.com にリクエストを送っていることを確認。 ※ Firefox なら [ツール(T)] > [Web コンソール(W)] 次に YQL(※)で、その xml が取得できるか確認。 (※ YQL) http://developer.yahoo.com/yql/console/ 両方 OK なのに、うまくいかないなら、 「success : function(data)」の data のなかを確認しながら、ソースをデバッグかな? https://raw.github.com/jamespadolsey/jQuery-Plugins/master/cross-domain-ajax/jquery.xdomainajax.js