• 締切済み

【jquery】クロスドメイン間の突破について

jquery.xdomainajax.js を使って、クロスドメインの突破を行おうとしております。 jquery.xdomainajax.js については、 http://www.kaasan.info/archives/1858 をご覧頂ければと思います。 本題はといいますと、 例えば、「hoge」としか書かれていないファイルが http://hogehoge.jp/a.html にあったとします。 そして、javascriptへ、 $.ajax({ url:'http://hogehoge.jp/a.html', // http://から始まるURLを指定 type: 'GET', success: function(res) { alert(res.responseText); } }); 記載することにより、alertで、「hoge」と表示させたいのです。 しかしながら、 ※以下本文 <html> <head> <meta content="HTML Tidy for Java (vers. 26 Sep 2004), see www.w3.org" name="generator"/> <title/> </head> <body> <p>hoge</p> </body> </html> ※以上 と表示されてしまいます。 どこを、どのように変更すれば「hoge」のみの表示が可能になるのでしょうか? 何卒、ご教授の程宜しくお願いします。

みんなの回答

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

取り敢えずresponseTextをresponseXMLにすればDOMで取得できますから そこからgetElementsByTagNameとかで範囲を狭めていけばいいでしょう 綺麗なやり方じゃなくていいのならresponseText.match(/<p>.+?<\/p>/)とかやればいいでしょう

回答No.2

>http://www.kaasan.info/archives/1858 >このプラグインのおもしろいところ、特徴を解説します。 >メタ情報の取得は無理。あくまでbody内のどこか プラグイン自身がresponseTextを書き換えてしまってるのではないでしょうか。 なのでraw dataを取得するには、プラグイン自身を改造しないとダメだと思います。 ※あくまで推測です。プラグインについて詳しい人ならその方法をご存知かもしれません。 s=''; for(var i in res ){ s+=i+': '+String(res[i]).substring(0, 20)+'\n'; } alert(s); などとして、どんなプロパティがあるか調べてみてはどうでしょうか。 もしかするとraw dataが別のプロパティとして保存されているかもしれません。

  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.1

jQuery抜きに書くと .overrideMimeType("text/xml") + .responseXML もしくは .responseType="document" + .response

ubshink
質問者

補足

ご回答ありがとう御座います。 しかしながら、実際にどのようにすれば良いのか、わかりませんでした。。 $.ajax({ url:'http://hogehoge.jp/a.html', // http://から始まるURLを指定 type: 'GET', success: function(res) { res.responseType="document" + res.response; alert(res.responseText); } }); のようにしてみましたが、返答は変わりませんでした。 上記コードをどのようにすれば、alertで「hoge」のみの表示になるのか、 お手数ですが教えて頂けませんか? 宜しくお願いします。

関連するQ&A

  • クロスドメインで取得したページが文字化けする

    クロスドメインでページを取得する事は成功したのですが、 たまに文字化けするページが存在します。 以下のページが文字化けして旨く取得できませんでした。 相手のサイトの文字コードはutf-8なので行けるはずなのですが・・・ https://www.amazon.co.jp/gp/offer-listing/B002HJVG3W/ スクリプトは以下の様に書きました。 jquery.xdomainajax.jsは、以下のページの物を使っています。 https://github.com/padolsey/jquery.fn/blob/master/cross-domain-ajax/jquery.xdomainajax.js scriptCharset:"utf-8"を入れたりしても変わらないです。。。 どうすれば良いかお手上げ状態です。よろしくお願いします。 ====ここから==== <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script src="jquery.xdomainajax.js" type="text/javascript"></script> <script> var content =""; $(document).ready(function(){ $.ajax({ url: 'https://www.amazon.co.jp/gp/offer-listing/B002HJVG3W/', type: 'GET', success: function(res) { content = $(res.responseText).text(); console.log(content); } }); }); </script> </head> <body> </body> </html>

  • jQueryで<body>内の特定のコードを削除

    よろしくお願いします。 jQuery(ver.1.8.3)を使って<body>内に記述されているHTMLコードを削除したいのですが、どのように書いたらいいのでしょうか。 ■削除したいコード <script src="http://www.hoge.com/hoge.js"></script> ■HTML <html>  <head>省略</head>  <body>   <script src="jquery-1.8.3.min.js"></script>   <script>   $(function(){   削除するスクリプト?   });   </script>   <script src="http://www.hoge.com/hoge.js"></script>  </body> <html> こちらからは編集できない領域にあるHTMLコードのため、jQueryを使ってどうにか削除できないかと思い質問させて頂きました。 どうぞよろしくお願い致します。

  • jQueryについて教えてください

    現在ドットインストールでjQueryを勉強しています いきなりつまずいたといいますかエラー?があります 以下のコードなのですが文字色(<p>)が赤色になりません なぜでしょうか? このコードではjQueryはDLせずに読み込ませています DLしたほうがいいでしょうか? <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <head> <body> <p>jQueryの練習</p> <script src="//code.jquery.com/jquery-1.11.3.min.js"></script> <script> $(function () { $('p').css('color', 'red'); }); </script> </body> </html>

  • jqueryで画像を切り替えたい

    以下ソースがあります。 ●main.js $(function(){ jQuery.ajax({ url : "./news.txt", type : "get", success : function(data){ alert(data); } }); }); ●news.txt test と記述しています。 ●index.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>jQuery Sample</title> <script type="text/javascript" src="jquery-1.7.1.min.js"></script> <script type="text/javascript" src="main.js"></script> </head> <body> <h1>jQueryサンプル</h1> <p>非同期通信の処理</p> </body> </html> この三つのファイルを同じ階層に置き、index.htmlで実行したところ 非同期通信(testのアラート)が表示されました。 そこで、 index.htmlファイルの左側にメニューを設けて、 メニューをクリックすると、画像のみが切り替わるという 内容で、jqueryによるajax実装を行いたいのです。 (左のメニュー1がクリックされれば、リンゴの画像。  メニュー2がクリックされれば、みかんの画像等) ulタグと、jquery関数にどういう仕掛けを入れると 果物画像の入れ替えが行えるでしょうか。 ご教授お願いします。

    • ベストアンサー
    • AJAX
  • ajax通信の戻り値が空になる。

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <script src="jquery.xdomainajax.js"></script> <!-- 追加 --> <script type="text/javascript"> $.ajax( { url: URL, type: 'GET', cache: false, dataType: 'xml' } ) .done(function(res) { console.log(res); } ) .fail(function(res) { console.log('FAIL') } ); </script> </head> 上記のコードの通り(url部分は明記を省略)、jquery.xdomainajax.jsを用いたajax通信を行いたいのですが、通信は成功しているもののコンソールを見ると以下のようになっています。 Object { query: Object, results: Array[0] } 本来ならresultsの部分に返り値が格納されるのですが、空になってしまいます。 なにか原因があればご教授頂きたいです。よろしくお願い致します。

  • jqueryが動作しない

    jqueryが動作しません。 私が行った手順を書きます。jqueryのサイトからdownloadをします。英文だったのでDreamweaverで開いて名前を付けて別名で保存しました。jquery-1.8.0.js拡張子で保存。 ソースコードをかいてみました。 <html> <head> <script src="jquery-1.8.1.min.js"></script> // urlを指定した場合です。 <script src="http]//jquery-1.8.1.min .js"></script> </head> <body> <h1>Jquery</h1> <script> $(function(){ $('h1').css('color'.'red'); }); </script> </body> </html> これを保存します。(拡張子は.navi.html) 実行しても動作しません。どうしてでしょうか?

  • jQueryとprototypeの共存

    prototype.jsとjQuery.js、そのプラグインであるjquery.cycle.all.pack.jsを共存させ、データベースから取り出した画像にエフェクトをかけて表示したいと思っています。 ライブラリの共存には'jQuery.noConflict();'を使うところまでは調べたのですが、その使い方がよくわかりません。現在は以下のようにプログラムを書いていますが、jqueryの効果が出ていません。使い方、描き方の間違い等ありましたらご指摘お願いいたします。 <script type="text/javascript" src="./js/prototype.js"></script> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.cycle.all.pack.js"></script> <script type="text/javascript"> <!-- jQuery.noConflict(); function loadHello(){ new Ajax.Request( './php/Search2.php', { onComplete : function( httpObj ){ $('検索結果表示領域').innerHTML = httpObj.responseText; } } );} jQuery(function() {     jQuery(".sample").cycle( { fx:'shuffle', delay: -2000 }); }); // --></script> </head> <body onLoad="loadHello()"> <ul id="sample"> <div id="検索結果表示領域"></div> </ul> </body> </html>

  • jQuery 読み込み

    jQuery 読み込み ソースなのですが <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>jqueryの練習</title> </head> <body> <p>jQueryの練習</p> <script src="http://code.jquery.com/jquery-1.10.1min.js"></script> <script> $(function(){ $('p').css('color','red').hide('slow'); }); </script> </body> </html> で9行目と11行目がエラーになります。 英語読めないのでエラーの内容はわかりませんが jQueryが読み込めてないのだと思っていて そこで質問なのですが 9行目で「http:~」と絶対パスで指定してるのにも関わらず jQueryを読み込めない理由って何かありますでしょうか? (全く的外れな事を言い出していたらごめんなさい。)

  • Jquery と JqueryUIについて

    現在、Jquery と JqueryUIを使ってプログラムを書いています。上手く動作しないので以下について教えてください。 やりたいことは、ボタンを押すと文字があらわれたり消えたりするという動作を実現したいと思っていますが、今は、ボタンと文字が表示されるのみで、ボタンを押しても全く動きません。 現在書いているコードは以下のとおりです。 ---- <html> <head> <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script> <script type="text/javascript" src="js/jquery-ui-1.8.17.custom.min.js"></script> <script> $(function() { $('#button').click(function(){ $('#sample-text').show(); }); }); </script> </head> <body> <input type="button" id="button" value="ボタン"> <p id="sample-text">Hello World!</p> </body> </html> ------------------- Jqueryのバージョンは、最初、UIとの互換性を考え、1.3.2を使っていましたが、動かないため、現在は新しいバージョンで試してみたところです。(1.4.4でもだめでした) JSファイルの場所は、上記htmlファイルと同じ階層のjsディレクトリ内です。 また、補足ですが、これが上手くいけば、script内の show メソッドのかわりに toggleを使いたいと考えています。 上記コードで間違っている部分がわかる方がいらっしゃいましたら教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • jQueryでカウントダウンタイマーのループ

    jquery-countdownのタイマーを作っています。 同じ時間を何度も繰り返す タイマーにしたいのですが うまくいきません。 jquery-countdown http://code.google.com/p/jquery-countdown/ demostration http://jquery-countdown.googlecode.com/svn/trunk/index.html このタイマーを ループさせたいと考えています。 15行目の timerEnd: function() { alert('end!!'); }, を変更するかと思いますが どのように変更すれば 何度も繰り返すループになるでしょうか? <html> <head> <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> <script src="http://jquery-countdown.googlecode.com/svn/trunk/js/jquery.countdown.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> $(function(){ $('#counter').countdown({ stepTime: 60, format: 'mm:ss', startTime: "00:10", image: 'http://jquery-countdown.googlecode.com/svn/trunk/img/digits.png', digitWidth: 53, digitHeight: 77, timerEnd: function() { alert('end!!'); }, }); }); </script> </head> <body> <div id="counter"></div> </body> </html>

専門家に質問してみよう