プロが教えるわが家の防犯対策術!

ウェッブサービスのxmlデータをjQuery Ajaxを使ってページ上に表示したいのですが、下記のコードでは、IEのみ表示できず悩んでいます。

jQuery(document).ready(function($){
        getAjaxData();
});
function getAjaxData(){
        $('#text-box').append('getAjaxData'+'<br>');
        jQuery.ajax({
              url: ウェッブサービスから提供されたxmlのURL,
              type:'GET',
              error:errorMsg,
              success:outputSuccess
        });
}
function outputSuccess(data){
        $('#text-box').append('success!'+'<br>');
        var txt = jQuery(data).find("root").text();
        $('#text-box').append(txt);
}
function errorMsg(){
        $('#text-box').append('error!'+'<br>');
}

Firefox,Chrome,Safari,Operaでは、上述コードのように、テキストボックスに最初getAjaxDataが表示され、次にsuccess!、さらにxmlの内容が表示されます。しかしIEのみ(IE9)getAjaxDataの次にerror!のテキストが表示され、xmlデータを読み込むことができません。
ネットでいろいろと調べましたが解決方法がみつかりません。
当方50歳を越えて独学でjQueryなど勉強していますが、まだまだ浅学のためどうしたらいいのか悩んでおります。
ぜひ解決法をご存知の方、ご教授いただければ幸いに存じます。
どこかいい解決法が書いてあるページのご紹介でもかまいません。
よろしくお願い申し上げます。

A 回答 (2件)

『IEでエラーに成るのに他では成らない』


とすればまず考えるのは
『非対応では?』と考えます。
コードを変更して対応出来ないなら、
errorMsgに”IE以外をお使い下さい”の表示を記載するのが宜しいかと。
尚:当方は『ルナスケーブ』を検証用として使ってます。

*IEに出来て他で出来ない事は何も無い。
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2013/06/09 07:07

ウェブサービスと仰られているので、「クロスサイト HTTP リクエスト」のセキュリティー違反が原因かと推測します。


jQuery の AJAX は最近のブラウザ(ie10,Firefox,Chrome,Safari,Opera)なら対策済みなのですが、なぜか IE 8-9 の配慮が抜けているようなので、別途対策が必要です。

対策スクリプトを取得する
https://github.com/jaubourg/ajaxHooks/blob/maste …

jQuery の後に読み込ませる
<script src="jquery.min.js"></script>
<script src="xdr.js"></script>

ちなみに「クロスサイト HTTP リクエスト」については、参考 URL が参考になります。少々読み辛いですが。

参考URL:https://developer.mozilla.org/ja/docs/HTTP_acces …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!