2012-02-11 14 views
0

JSON配列のサイトを1つずつdivにロードしようとしています。 (一度ロードが終了してから次のロードをロードすると)、自分で設定する方法はわかりません。 Access Control-Allow-Originによって許可されていない がjsfiddle.netのため申し訳ありません。json配列からjson配列を1つずつロードする

$(document).ready(function() { 
//var mark = false; 
//if(mark==false){ 
    //var json = {"set":"[{'web':'google','site':'http://www.google.com'},{'web':'bing','site':'http://www.bing.com'},{'web':'yahoo','site':'http://www.yahoo.com'}]"} 
    var json = {"set":"[{'web':'google','site':'1.html'},{'web':'bing','site':'2.html'},{'web':'yahoo','site':'3.html'}]"} 

    json = eval(json.set); 
    for(var i=0; i<json.length; i++){ 
     var divid = json[i].web; 
     var url = json[i].site; 
     $('#'+divid+'').load(''+url+'',function(){ 
      //mark = false; 
     }); 
    } 
//} 
}); 



<div id="google"></div> 

<div id="bing"></div> 

<div id="yahoo"></div>​ 

答えて

3

アクセス制御 - 許可 - 起源で許可されていないjsfiddle.netのため申し訳ありません。

問題はjsfiddleとは関係ありません。ブラウザに組み込まれているsame origin policyの制限により、AJAXリクエストをクロスドメインに送信することはできません。あなたはやって忘れることができます。

$('#google').load('http://www.google.com'); 

このスクリプトを含むページがhttp://www.google.comでホストされているコースの場合を除きます。

あなたのドメインとリモートの間のブリッジとして機能する(PHP、Javaサーブレット、ASP.NETなどのサーバーサイド言語を使用して)ドメイン上にサーバーサイドスクリプトを構築することができますドメインを取得しようとしています。次に、AJAXリクエストをサーバー側のスクリプトに送信します。

クロスドメインAJAXのテクニックについて説明している following articleをご覧ください。


UPDATE:

あなたは2番目のリクエストが最初に成功した後にのみトリガされていることと、あなたが再帰的なメソッドを書くことができる上、このような方法であなたのAJAX要求をキューにしたいと仮定すると:

$(function() { 
    // TODO: it's pretty trivial to build this list array given your initial 
    // json object, so I am not including it here 
    var list = [ 
     { url: '/url1/', target: '#google' }, 
     { url: '/url2/', target: '#bing' }, 
     { url: '/url3/', target: '#yahoo' }, 
    ]; 

    (function(list) { 
     var element = list.shift(); 
     if (element) { 
      var caller = arguments.callee.caller; 
      $(element.target).load(element.url, function() { 
       caller(list); 
      }); 
     } 
    })(list); 
}); 
+0

こんにちは、私は 'jsfiddle.net'について気にしません。(ちょうどテストプラットフォームです)私は単なるローディングを制御する方法を知りたいですか?ありがとう。 –

+0

@yulichika、あなたはあなたのAJAXリクエストを並行してトリガーしているので、あなたがどれくらい時間がかかるかを制御することはできません。 *順次*(最初の処理が完了した後にのみ2番目の要求をトリガーするなど)にしますか? –

+0

はい。私は最初のリクエストが終了した後に2番目のリクエストをトリガしたいと思います。事実、私は私のページをロードします。グーグル、ビン、ヤフーだけの質問のために簡単にテストします。ありがとう。 –

関連する問題