Memahami Isu
Sebagai pengguna AngularJS baharu, anda menghadapi cabaran semasa menghantar data ke pelayan menggunakan perkhidmatan $http. Khususnya, anda menghadapi masalah semasa cuba menghantar data dalam format yang dikodkan URL.
Penyelesaian
Untuk menyelesaikan masalah ini, anda perlu menukar data anda kepada URL parameter dan bukannya rentetan JSON. Ben Nadel menerangkan perkara ini dalam blognya:
By default, the $http service will transform the outgoing request by serializing the data as JSON and then posting it with the content-type, "application/json". When we want to post the value as a FORM post, we need to change the serialization algorithm and post the data with the content-type, "application/x-www-form-urlencoded".
Contoh
Berikut ialah contoh yang menunjukkan cara menyiarkan data borang yang dikodkan URL menggunakan $http:
$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} }).then(function () {});
Kemas kini untuk AngularJS v1.4 dan Kemudian
Untuk AngularJS v1.4 dan lebih baru, anda boleh memanfaatkan perkhidmatan baharu yang tersedia untuk mencapai hasil yang sama:
$http({ method: 'POST', url: url, headers: {'Content-Type': 'application/x-www-form-urlencoded'}, transformRequest: $httpParamSerializer });
Atas ialah kandungan terperinci Bagaimana untuk MENYIASKAN Data Borang Dikodkan URL dengan Perkhidmatan $http AngularJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!