1
私はjgetを.eachループの中に.getを入れています。私はループ内のすべての取得が完了するまで待ちます(それぞれが新しい要素を配列に挿入します)。そして、作成された配列を保存するためにphpファイルにajax post要求を行います。私は、それぞれが終了するまで、どのようにしてAjaxリクエストを待つことができるのか分かりません。これまではアヤックスが非常に速く発砲していたため、アガックスはまだ空になっていました。多分あなたはアイディアを持っています。ここgetを終了するまでそれぞれajaxを待ちます。
スクリプトである:
$('#ScanButton, .ScanButton').click(function() {
var array = ["http://www.xyz.com/bla/bla/summary.html",
"http://www.xyz.com/blu/blu/summary.html",
];
dataArray = [];
$.each(array, function(n, val) {
$.get(val, function(res) { //get the html source of this website
var data = {
}
}).complete(function() {
alert("complete");
dataArray.push(data);
});
});
data = YAHOO.lang.JSON.stringify(dataArray);
$.ajax({
async: false,
type: 'post',
cache: false,
url: 'test.php',
data: {myJson: data}
});
return false;
})。
何か助けていただきありがとうございます。ありがとうございました:)
に.get()関数は、この影響を受けているアヤックスの速記機能()、であるとして「同一生成元ポリシーは、」問題になるだろう。この詳細については、http://en.wikipedia.org/wiki/Same_origin_policyを参照してください。希望が役立ちます。 –
私は、同じ発信元ポリシーの概念に精通しています。ありがとうございました:)私は(それは単なる民間のプロジェクトのために)うまくいく回避策を得ました。しかし、今まで各ループの後にajax投稿要求が発生します。これらの要求を最小限に抑えたいこれはループが終了し、配列が引き渡されるのが完了した後に、最後のajaxポストリクエストを起動する必要がある理由です。 – Sebsemillia