Rumah >hujung hadapan web >tutorial js >Bagaimana untuk MENYIASKAN Data Borang Dikodkan URL dengan Perkhidmatan $http AngularJS?

Bagaimana untuk MENYIASKAN Data Borang Dikodkan URL dengan Perkhidmatan $http AngularJS?

Linda Hamilton
Linda Hamiltonasal
2024-12-11 05:16:111031semak imbas

How to POST URL-Encoded Form Data with AngularJS's $http Service?

Menyiarkan Data Borang Diekodkan URL dengan $http dalam AngularJS

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn