Beginilah cara saya menyerahkan borang
$http({
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
method: 'POST',
url: url,
data: {
type: 1
}
})
Mengapa pelayan saya menerima sesuatu seperti ini?
{ '{"type":1}': '' }
Masalah selesai
Sebab:
Secara lalai, jQuery menghantar data menggunakan Content-Type: x-www-form-urlencoded dan siri foo=bar&baz=moe yang biasa, bagaimanapun, menghantar data menggunakan Content-Type: application/json dan { "foo": "bar. ", "baz": "moe" } Siri JSON
Secara lalai, jQuery menghantar data menggunakan Content-Type: x-www-form-urlencoded dan urutan yang serupa dengan "foo=bar&baz=moe", walau bagaimanapun AngularJS, menghantar data menggunakan Content-Type: application/json dan { " foo": "bar", "baz": "moe" } jujukan json sedemikian.
Penyelesaian
Mungkin anda sudah biasa menggunakan jquery,
jquery merangkum operasi query_string
Cuma tambah kod ini pada sudut dan tukar nama contoh
1. Baca dokumentasi rasmi angularjs untuk memahami penggunaannya Nampaknya pengepala $http adalah sedikit berbeza.
2. Muat turun alat fiddler dan lihat maklumat seperti pengepala permintaan dan param.
Pelayan tidak boleh mendapatkannya secara langsung menggunakan $_REQUEST/$_POST, tetapi perlu menggunakan:
$params = json_decode(file_get_contents('php://input'),true);
Untuk mendapatkan data penyerahan