$ http mendapatkan parameter tidak berfungsi


93

Adakah yang tahu mengapa ini tidak berhasil?

$http
    .get('accept.php', {
        source: link,
        category_id: category
    })
    .success(function (data, status) {
        $scope.info_show = data
    });

dan ini berhasil:

$http
    .get('accept.php?source=' + link + '&category_id=' + category)
    .success(function (data, status) {
        $scope.info_show = data
    });

Jawaban:


191

Parameter ke-2 dalam getpanggilan tersebut adalah objek config. Anda menginginkan sesuatu seperti ini:

$http
    .get('accept.php', {
        params: {
            source: link,
            category_id: category
        }
     })
     .success(function (data,status) {
          $scope.info_show = data
     });

Lihat bagian Argumen di http://docs.angularjs.org/api/ng.$http untuk detail lebih lanjut


Catatan, menggunakan paramsseperti di atas juga menyelesaikan masalah permintaan GET yang tidak digunakan data. AngularJS tidak akan menyelesaikannya sendiri seperti yang dilakukan jQuery. (Saya tidak berpikir itu hal yang baik atau buruk, hanya berbeda dan mungkin membuat orang tersandung).
DanielM

Saya mendapatkan tidak terdefinisi untuk properti nilai kunci saya di dalam objek params. Haruskah ini berbeda dalam suatu layanan?
Winnemucca

2
Selain itu, saat paramsobjek kosong, atau semua propertinya adalah nullatau undefined, tidak ada yang akan ditambahkan ke string kueri.
nfang

3

Dari $http.getdokumen , parameter kedua adalah objek konfigurasi:

get(url, [config]);

Metode pintas untuk melakukan GETpermintaan.

Anda dapat mengubah kode Anda menjadi:

$http.get('accept.php', {
    params: {
        source: link, 
        category_id: category
    }
});

Atau:

$http({
    url: 'accept.php', 
    method: 'GET',
    params: { 
        source: link, 
        category_id: category
    }
});

Sebagai catatan tambahan, karena Angular 1.6 : .success tidak boleh digunakan lagi , gunakan .thensaja:

$http.get('/url', config).then(successCallback, errorCallback);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.