ホームページ > ウェブフロントエンド > jsチュートリアル > AngularJS の $http サービスを使用して URL エンコードされたフォーム データを POST する方法

AngularJS の $http サービスを使用して URL エンコードされたフォーム データを POST する方法

Linda Hamilton
リリース: 2024-12-11 05:16:11
オリジナル
956 人が閲覧しました

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

AngularJS で $http を使用して URL エンコードされたフォーム データを POST する

問題を理解する

新しい AngularJS ユーザーとして、 $http サービスを使用してサーバーにデータを送信するときに問題が発生しました。具体的には、URL エンコード形式でデータを送信しようとしたときに問題が発生しました。

解決策

この問題を解決するには、データを URL に変換する必要があります。 JSON 文字列の代わりにパラメータを使用します。 Ben Nadel はこれについて自身のブログで説明しています:

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".
ログイン後にコピー

$http を使用して URL エンコードされたフォーム データを投稿する方法を示す例を次に示します:

$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 () {});
ログイン後にコピー

AngularJS v1.4 および後で

AngularJS v1.4 以降では、利用可能な新しいサービスを利用して同じ結果を達成できます:

$http({
    method: 'POST',
    url: url,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    transformRequest: $httpParamSerializer
});
ログイン後にコピー

以上がAngularJS の $http サービスを使用して URL エンコードされたフォーム データを POST する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート