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

  • fufko

    fufko

    27 ŞUBAT 2006
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013
  • The Warp Zone

    The Warp Zon

    24 AĞUSTOS 2007