• 締切済み

Ajax.Updaterをクロスドメインで使用する方法

Ajax.Updaterをクロスドメインで使用する方法 携帯から失礼します。 Ajax.Updaterをクロスドメインで使用する事は可能でしょうか? JSONPを使用すれば可能とのページはいくつかあったのですが、具体的にはどのようにすればよいのか分かりません。 動的にscriptタグを作成し、srcに表示したいurlを書いて取得する所まではできました。 この後の処理方法についてご教受願います。

  • AJAX
  • 回答数1
  • ありがとう数38

みんなの回答

  • think49
  • ベストアンサー率59% (285/482)
回答No.1

JSONPと Ajax.Updater には全く関連性がありません。 Ajax.Updater - Ajaxで指定エレメントの内容を書き換える - prototype.jsリファレンス http://javascriptist.net/ref_prototype/ajax.updater.html throw Life - 超シンプルなJSONP入門 http://www.adamrocker.com/blog/102/javascript_simplest_jsonp.html JSONPを使う場合は、外部サーバ側でJSONを出力する必要があります。

関連するQ&A

  • jQuery Ajaxでクロスドメイン通信

    jQuery Ajaxでクロスドメイン通信をやりたいのです以下の質問について教えて下さい。 AjaxからPHP(別ドメイン)にデータをPOSTで投げたいです。 PHPファイルがあるディレクトリはBasic認証してあります。 質問1. AjaxのdataTypeオプションは、PHPからjQueryが受け取るレスポンスのデータタイプのことですか? それともjQueryからPHPからにデータを投げる場合にもこのタイプ指定で何か変わるのでしょうか? 質問2. クロスドメイン通信をdataTypeがjsonpじゃないとクロスドメイン通信はできないのでしょうか? 質問3. dataTypeがjsonpのとき、jQueryから投げるURLの末尾に?data=hogehogeのようにパラメータが付きます。 typeオプションをPOSTにしているのにGETのようにパラメータが付くのはなぜでしょうか? これのせいで、数千文字のパラメータをPOSTできずGETの文字数制限でエラーになってしまいます。 どれは一つでもおわかりでしたらお教え下さい。 よろしくお願い致します。

  • ドメインをまたぐajax

    サーバA(A.com)に <script type="text/javascript" src="http://B.com/"></script> サーバB(B.com)のajax上に object oj = new ActiveXObject("Msxml2.XMLHTTP") ; oj.open(method,url,async,user,password); でajaxを利用しようとしたところ、 上記のoj.openでエラーとなってしまいます。 ローカル上に両方置いてテストしたときはエラーは起きないのですが、 ドメインをまたぐ場合はエラーとなります。 ajaxでドメインをまたぐのはセキュリティ上使用できないのでしょうか?

    • ベストアンサー
    • AJAX
  • クロスドメインについて

    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>

  • JavaScriptでクロスドメイン

    一般的にJavaScriptではクロスドメインは対応していませんが、 GoogleAdsenseでは <script type="text/javascript" src="http://*********/***.js" ></script> で明らかに違うドメインにリンクしています。 Javascriptでどうやってテキストを参照しているのでしょうか? また、他に方法がありましたら、 ご存知の方がいましたら、 よろしくお願いします。

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

    クロスドメインでページを取得する事は成功したのですが、 たまに文字化けするページが存在します。 以下のページが文字化けして旨く取得できませんでした。 相手のサイトの文字コードは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>

  • クロスドメインのjsonpをjqueryで取得

    現在jsonpでクロスドメイン間の通信を行おうとしています。 サイトにあるjsonpは下記のような形です。 articles({"articles_cnt":"2","article":[{"kind":"newhouse","no":"1"},{"kind":"newhouse","no":"1"}]}) このkindとnoを取得するにはどうすればいいでしょうか? どなたかご教授ください。よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • AJAXの書き方について

    <script type="text/javascript"> $( function() { $( '#ajax-button' ) .click( function() { $.ajax({ url: 'http://localhost:8080/app/family', type:'GET', data: {test1 : 'aaa', test2 : 'bbb' }, dataType: 'jsonp', success: function(data) { alert("ok"); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("ng"); } }); }); } ); </script> この部分は何を意味しているのでしょうか? $( '#ajax-button' ) .click( またここの部分をIDにして二つ別々のIDを書いてblur(fn()にしたい場合はどうすればいいのでしょうか? $("[id$=NO]").blur(function(){ $("[id$=NM]").blur(function(){ function() { $.ajax({ url: 'http://localhost:8080/app/family', type:'GET', data: {test1 : 'aaa', test2 : 'bbb' }, dataType: 'jsonp', success: function(data) { alert("ok"); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert("ng"); } }); }); }); }); このようにしても動きません。 正しい書き方を教えていただきたいです。

  • Ajaxでタイムアウトしてしまう

    こんにちは。始めまして。 現在、perl & Ajax(prototype.js)でプログラムを組んでいます。 大雑把に言うと、入力されたキーワードにヒットするURLをPerlのLWPでGoogleから拾ってきて、HTML中のIDにAjax.Updaterで表示するものです。 その際、大量のキーワード(例えば300個くらい)を使って検索する場合、Ajax.Updaterがタイムアウトしてしまいます。 <script> new Ajax.Updater('ggl1','hogehoge.pl',{parameters: '&q=キーワード1'}); new Ajax.Updater('ggl2','hogehoge.pl',{parameters: '&q=キーワード2'}); new Ajax.Updater('ggl3','hogehoge.pl',{parameters: '&q=キーワード3'}); new Ajax.Updater('ggl4','hogehoge.pl',{parameters: '&q=キーワード4'}); new Ajax.Updater('ggl5','hogehoge.pl',{parameters: '&q=キーワード5'});   (続く続く・・・) new Ajax.Updater('ggl300','hogehoge.pl',{parameters: '&q=キーワード300'}); </script> どのようにすれば、タイムアウトさせないように出来るのでしょうか? お分かりの方がいらっしゃいましたら、ご教授ください。

  • Ajaxの動き

    googleと本で調べたのですが、今いちわからないため質問させてください。 (1)教科書から、Ajaxは、XMLをJavascriptでやり取りしている非同期通信という定義なのはわかりましたが、結局、AJAXを使うということは、HTMLに、<Script>のタグで、JQueryなどのパスを書くということなのでしょうか? AJAXは概念的なものであって、プログラムやモジュールそのものではないと捉えています。 (2)Ajaxによる非同期通信は、何をきっかけとして通信が始まるのでしょうか? 通常は、FORMがSUBMITされたときに、サーバにリクエストがいくという認識ですが そもそも、Ajaxは、何をイベントとしてハンドルしているのでしょうか?(何をきっかけに処理が始まっているのでしょうか?) HTMLに、<Script>のタグで、JQueryのパスを書くと、ハンドルする機能が使用されるのでしょうか? Ajaxでも「リクエスト」は行われているけれども、処理結果として戻されるものがXML形式であるだけだという理解で良いのでしょうか?

    • ベストアンサー
    • AJAX
  • JavaScript クロスドメインのリスク

    JavaScriptを使用したweb設計・開発をしています。3点質問いたします。 質問1 素朴な疑問なのですが、一般のwebサイト(接続元)からXMLHttpRequestやajaxを利用して他ドメイン(接続先)のデータが取得できないのはブラウザのセキュリティ上の制約だそうですが、セキュリティ上どのような問題があるのか具体例を教えてください。なお、ローカルファイルへのアクセスの問題点は承知しておりますので質問の範囲ではありません。 例示するような問題が考えられると思うのですが、次の理由によりいまいち納得できません。 ・接続先の認証済クッキーを使用し接続先のデータを接続元が読み取ることが出来る →ブラウザの仕様を修正し、クロスドメインへのhttpリクエストの際にクッキー情報を付与しないあるいは付与の可否をユーザーが選択できるようにすれば問題無いのでは?何故それが出来ない? ・偽装サイトを作れる→iframeもあるしそもそも静的なwebサイトは容易に複製できる ・他サイトへのDoS攻撃になる→imgやjsは普通にクロスドメインで取得し使用できる。また、firefoxのXMLHttpRequestの通信を解析するとどんな形式のファイルの要求であってもレスポンスは一応返ってきているようであり、ブラウザが受信したデータを弾いているだけなので接続先へアクセスしていることに変わりない。 ・Same-origin policyに反する→反すると何が問題なのか。JSONPなどは例外的な動作が認められているがそれらの例外以外は認められないのは何故か。 質問2 最新バージョンのfirefoxで、引数を付けて起動する、about:config等デフォルトの機能のみで権限を昇格し、クロスドメイン制約を回避する方法があれば教えてください。または、クロスドメイン制約を回避するだけの単一の機能を持ったアドオンがあれば教えてください。(Greasemonkeyは一般の人に使用してもらうにはセキュリティ上の懸念があります) 質問3 ブラウザの利用者の同意の元webサイトのクロスドメイン制約を回避するfirefoxアドオンの作成・配布は問題無いと考えられますでしょうか。それともウィルス作成と同様倫理上非難される行為なのでしょうか。問題だとするなら何が問題と考えられているのでしょうか。(JSONP等の代替技術のご提示は結構です) 個別の質問だと質問の意図が伝わりにくいと思いましたので、まとめて質問させていただきました。分かる範囲で構いませんので、ご回答宜しくお願い致します。