Saya telah melakukan beberapa jQuery di masa lalu, tetapi saya benar-benar terjebak dalam hal ini. Saya tahu tentang pro dan kontra menggunakan panggilan ajax sinkron, tetapi di sini akan diperlukan.
Halaman jarak jauh dimuat (dikontrol dengan pembakar), tetapi tidak ada pengembalian ditampilkan.
Apa yang harus saya lakukan agar fungsi saya kembali dengan benar?
function getRemote() {
var remote;
$.ajax({
type: "GET",
url: remote_url,
async: false,
success : function(data) {
remote = data;
}
});
return remote;
}
ajax
jquery
synchronous
Industri
sumber
sumber
seems that the statement "[synchronous] will be required" indicates a lack of understanding of JavaScript engines, thus a poorly architected app.
Atau pemahaman yang sangat baik: Jika Anda ingin melakukan panggilan AJAXonbeforeunload
, menggunakan permintaan sinkron sebenarnya adalah cara yang disarankan (karena jendela browser akan hilang sebelum permintaan dikembalikan sebaliknya). Dengan cara apa pun ia dengan jelas mengatakan `Saya tahu tentang pro dan kontra menggunakan panggilan ajax sinkron` ... Mungkin hanya percaya padanya?Jawaban:
Saat Anda membuat permintaan sinkron, itu seharusnya
Contoh - http://api.jquery.com/jQuery.ajax/#example-3
PERHATIKAN: Mengatur properti async ke false sudah tidak digunakan lagi dan sedang dalam proses dihapus ( tautan ). Banyak browser termasuk Firefox dan Chrome sudah mulai mencetak peringatan di konsol jika Anda menggunakan ini:
Chrome:
Firefox:
sumber
responseText
selalu mengembalikan string. Jika Anda mengharapkan JSON, bungkus$.ajax
denganJSON.parse
.<i>
dan<b>
. Rekomendasi saya: tetap menggunakan fitur ini agar tidak hilang.Anda menggunakan fungsi ajax secara tidak benar. Karena sinkron, ini akan mengembalikan data inline seperti:
sumber
seberapa jauh url itu? apakah itu dari domain yang sama? kode terlihat oke
coba ini
sumber
remote_url
didefinisikan dengan benar dan panggilan AJAX dilakukan sebagaimana mestinya (dikontrol dengan pembakar). Tidak bisa kembali!sumber