SORU
12 Temmuz 2014, CUMARTESİ


Nasıl AngularJS $http urlencoded form verilerini göndermek için ne yapmalıyım?

angularJS, Yeni duyuyorum ve bir başlangıç için, yeni bir uygulama sadece AngularJS kullanmayı düşündüm.

Sunucu tarafı için AJAX bir ara, Açısal benim App $http kullanarak yapmaya çalışıyorum.

Parametreleri göndermek için, aşağıdaki denedim:

$http({
    method: "post",
    url: URL,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    data: $.param({username: $scope.userName, password: $scope.password})
}).success(function(result){
    console.log(result);
});

Bu çalışıyor ama, o kadar iyi jQuery kullanıyor$.param. Denedim jQuery, bağımlılığı kaldırmak için,

data: {username: $scope.userName, password: $scope.password}

Ama bu başarısız görünüyordu. O zaman params denedim:

params: {username: $scope.userName, password: $scope.password}

Ama bu da başarısız görünüyordu. Sonra JSON.stringify denedim:

data: JSON.stringify({username: $scope.userName, password: $scope.password})

Görevim bu cevabı buldum, ancak başarısız oldu. Ben yanlış bir şey yapıyorum.? Eminim, AngularJS, bu işlevselliği sağlamak. Ama nasıl.?

CEVAP
25 Temmuz 2014, Cuma


Yapmanız gereken bence url parametreler için JSON dize değil, ama nesne verilerinizi dönüştürmek için.

From Ben Nadel's blog.

Varsayılan olarak, $http servisi giden istek dönüştürecek ve sonra da verileri ile göndermeden içerik olarak JSON seri hale getirilirken yazın, "". application/json Bir FORM olarak değerini post etmek istediğimizde post, seri hale getirme algoritması değiştirmek ve veri göndermek için ihtiyacımız var içerik türü "uygulama/x-www-form-urlencoded".

Örnek from here.

$http({
    method: 'POST',
    url: url,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    transformRequest: function(obj) {
        var str = [];
        for(var p in obj)
        str.push(encodeURIComponent(p)   "="   encodeURIComponent(obj[p]));
        return str.join("&");
    },
    data: {username: $scope.userName, password: $scope.password}
}).success(function () {});

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • androidandme

    androidandme

    10 Mart 2009
  • EminemMusic

    EminemMusic

    9 ŞUBAT 2007
  • sWooZie

    sWooZie

    9 ŞUBAT 2006