Bagaimana seharusnya saya meneruskan nilai string kueri dalam permintaan jQuery Ajax? Saat ini saya melakukannya sebagai berikut tetapi saya yakin ada cara yang lebih bersih yang tidak mengharuskan saya untuk menyandikan secara manual.
$.ajax({
url: "ajax.aspx?ajaxid=4&UserID=" + UserID + "&EmailAddress=" + encodeURIComponent(EmailAddress),
success: function(response) {
//Do Something
},
error: function(xhr) {
//Do Something to handle error
}
});
Saya telah melihat contoh di mana parameter string kueri dilewatkan sebagai array tetapi contoh-contoh ini saya lihat tidak menggunakan $.ajax()
model, sebaliknya mereka langsung menuju $.get()
. Sebagai contoh:
$.get("ajax.aspx", { UserID: UserID , EmailAddress: EmailAddress } );
Saya lebih suka menggunakan format $ .ajax () karena sudah biasa (tidak ada alasan yang bagus - hanya preferensi pribadi).
Sunting 09/04/2013:
Setelah pertanyaan saya ditutup (sebagai "Terlalu Lokal") saya menemukan pertanyaan terkait (identik) - dengan 3 upvotes tidak kurang (Buruk saya karena tidak menemukannya di tempat pertama):
Menggunakan jquery untuk membuat POST, bagaimana cara memasok parameter 'data' dengan benar?
Ini menjawab pertanyaan saya dengan sempurna, saya menemukan bahwa melakukannya dengan cara ini jauh lebih mudah dibaca & saya tidak perlu menggunakan secara manual encodeURIComponent()
di URL atau nilai-nilai DATA (yang saya temukan tidak jelas dalam jawaban bipen). Ini karena data
nilai dikodekan secara otomatis melalui $.param()
). Kalau-kalau ini bisa berguna bagi orang lain, ini adalah contoh saya pergi dengan:
$.ajax({
url: "ajax.aspx?ajaxid=4",
data: {
"VarA": VarA,
"VarB": VarB,
"VarC": VarC
},
cache: false,
type: "POST",
success: function(response) {
},
error: function(xhr) {
}
});
sumber
Jawaban:
Gunakan opsi data ajax. Anda dapat mengirim objek data ke server dengan
data
opsi di ajax dantype
yang menentukan bagaimana Anda mengirimnya (salah satuPOST
atauGET
). Jenis standar adalahGET
metodeCoba ini
Dan Anda bisa mendapatkan datanya dengan (jika Anda menggunakan PHP)
Dalam aspx, saya percaya itu (mungkin salah)
sumber
encodeURIComponent
. jquery akan melakukan ini untukmu.data:$.param({ajaxid: 4, UserID: UserID, EmailAddress: EmailAddress})
, alih-alihdata: { ajaxid: 4, UserID: UserID, EmailAddress: EmailAddress }
Masukkan params Anda di
data
bagianajax
panggilan. Lihat dokumen . Seperti itu:sumber
Berikut ini sintaks menggunakan jQuery
$.get
Jadi dalam kasus Anda, itu sama dengan,
Catatan
$.get
tidak memberi Anda kesempatan untuk mengatur penangan kesalahan. Tetapi ada beberapa cara untuk melakukannya baik menggunakan $ .ajaxSetup () , $ .ajaxError () atau merantai.fail
pada Anda$.get
seperti di bawah iniAlasan untuk menetapkan datatype sebagai 'jsonp' adalah karena masalah kebijakan asal browser yang sama, tetapi jika Anda membuat permintaan pada domain yang sama dengan javascript Anda di-host, Anda harus setuju dengan datatype diatur ke
json
.Jika Anda tidak ingin menggunakan jquery yang
$.get
kemudian lihat dokumentasi untuk$.ajax
yang memungkinkan ruang untuk fleksibilitas yang lebihsumber
Coba tambahkan ini:
Tergantung pada tipe data apa yang diharapkan, Anda dapat menetapkan
html, json, script, xml
sumber
ID
) sebelum meneruskannya sebagai parameter? Saya memiliki Q pada SO, stackoverflow.com/questions/41192531/… . Saya mengembangkan Q ini lebih jauh, di mana sekarang saya memanggil dialog jquery dan memanggil ajax untuk mengambil data dari mysql. Saya kehilangan tautan tentang cara mengambil ID unik yang terkait dengan setiap klik datapoint . Hargai jika Anda dapat membantu saya. Terima kasihProperti data memungkinkan Anda mengirim string. Pada kode sisi server Anda, terima sebagai nama argumen string "myVar" dan kemudian Anda dapat menguraikannya.
sumber
stringify
?ajax
Implementasi jQuery menangani hal itu untuk Anda.Punya masalah yang sama dengan yang saya tentukan
data
tetapi browser mengirim permintaan ke URL yang diakhiri[Object object]
.Anda harus
processData
mengatur ketrue
.sumber
Anda dapat menggunakan
$.ajax()
, dan jika Anda tidak ingin memasukkan parameter langsung ke URL, gunakandata:
. Itu ditambahkan ke URLSumber: http://api.jquery.com/jQuery.ajax/
sumber
Parameter data metode ajax memungkinkan Anda mengirim data ke sisi server. Di sisi server Anda dapat meminta data. Lihat kode
Di sisi server menerimanya menggunakan variabel $ _GET.
sumber