Saya menggunakan metode di atas & bekerja dengan baik dengan satu parameter di URL.
misalnya di Students/getstud/1
mana format pengontrol / tindakan / parameter diterapkan.
Sekarang saya memiliki tindakan di pengontrol Siswa yang menerima dua parameter dan mengembalikan objek JSON.
Lalu bagaimana cara memposting data dengan $.getJSON()
menggunakan metode post?
Metode serupa juga dapat diterima.
Intinya adalah memanggil tindakan pengontrol dengan AJAX.
get
dalamgetJSON
arti gunakan GET untuk mendapatkan beberapa json.Jawaban:
Metode $ .getJSON () melakukan HTTP GET dan bukan POST. Anda perlu menggunakan $ .post ()
Dalam panggilan itu,
dataToBeSent
bisa apa saja yang Anda inginkan, meskipun jika mengirim isi dari bentuk html, Anda dapat menggunakan metode serialize untuk membuat data untuk POST dari formulir Anda.sumber
Ini adalah solusi "satu baris" saya:
Untuk menggunakan jsonp, dan metode POST, fungsi ini menambahkan parameter GET "callback" ke URL. Inilah cara menggunakannya:
Server harus siap untuk menangani parameter GET callback dan mengembalikan string json sebagai:
di mana "jsonp000000" adalah nilai GET panggilan balik.
Dalam PHP implementasinya akan seperti ini:
Saya melakukan beberapa pengujian lintas-domain dan tampaknya berhasil. Masih perlu lebih banyak pengujian.
sumber
?callback
? di url? Itu membuat panggilan balik tidak dipanggil untukku. Saya juga menambahkanJSON.stringify(data)
. +1, postingan bermanfaat!jQuery.getJSON = function(url, data, func) { return $.get(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); }
Cukup tambahkan baris ini ke Anda
<script>
(di suatu tempat setelah jQuery dimuat tetapi sebelum memposting apa pun):Ganti (beberapa / semua)
$.getJSON
dengan$.postJSON
dan nikmatilah!Anda dapat menggunakan fungsi panggilan balik Javascript yang sama seperti dengan
$.getJSON
. Tidak diperlukan perubahan sisi server. (Yah, saya selalu merekomendasikan penggunaan$_REQUEST
di PHP. Http://php.net/manual/en/reserved.variables.request.php , Di antara $ _REQUEST, $ _GET dan $ _POST mana yang tercepat? )Ini lebih sederhana dari solusi @ lepe.
sumber
Saya memiliki kode yang melakukan getJSON. Saya hanya menggantinya dengan pos. Yang mengejutkan saya, itu berhasil
sumber
Saya baru saja menggunakan posting dan jika:
sumber
$.getJSON()
sangat berguna untuk mengirim permintaan AJAX dan mendapatkan kembali data JSON sebagai tanggapan. Sayangnya, dokumentasi jQuery tidak memiliki fungsi saudara yang harus dinamai$.postJSON()
. Mengapa tidak menggunakan$.getJSON()
dan menyelesaikannya saja? Nah, mungkin Anda ingin mengirim data dalam jumlah besar atau, dalam kasus saya, IE7 hanya tidak ingin berfungsi dengan baik dengan permintaan GET.Memang benar, saat ini tidak ada
$.postJSON()
metode, tetapi Anda dapat mencapai hal yang sama dengan menentukan parameter keempat (tipe) dalam$.post()
fungsi:Kode saya terlihat seperti ini:
sumber
jika Anda hanya memiliki dua parameter, Anda dapat melakukan ini:
sumber