$ http get parametreleri çalışmıyor


93

Bunun neden işe yaramadığını bilen var mı?

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

ve bu işe yarıyor:

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

Yanıtlar:


191

Çağrıdaki 2. parametre getbir yapılandırma nesnesidir. Bunun gibi bir şey istiyorsun:

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

Daha fazla ayrıntı için http://docs.angularjs.org/api/ng.$http'nin Bağımsız Değişkenler bölümüne bakın


paramsYukarıdaki gibi kullanmak , GET isteklerinin kullanılmaması sorununu da çözer data. AngularJS, jQuery'nin yaptığı gibi bunu kendi kendine çözmeyecektir. (Bunun iyi ya da kötü bir şey olduğunu düşünmüyorum, sadece farklı ve insanları ayağa kaldırabilir).
DanielM

Params nesnesinin içindeki anahtar değer özelliklerim için tanımsız hale geliyorum. Bu bir serviste farklı olmalı mı?
Winnemucca

2
Ayrıca, paramsnesne boş olduğunda veya tüm özellikleri nullya da undefinedolduğunda, sorgu dizesine hiçbir şey eklenmez.
nfang

3

Kaynaktan $http.getdokümanlar , ikinci parametre, bir konfigürasyon nesnesi olup:

get(url, [config]);

GETİsteği gerçekleştirmek için kısayol yöntemi .

Kodunuzu şu şekilde değiştirebilirsiniz:

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

Veya:

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

Bir yan not olarak, çünkü açısal 1.6 : .success artık kullanılmamalıdır kullanmak .thenyerine:

$http.get('/url', config).then(successCallback, errorCallback);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.