$ 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.