jQuery を使用せずに $http を使用して URL エンコードされたデータを POST する
AngularJS 初心者として、あなたは、jQuery を使用せずに AJAX リクエストを行う方法を探しています。 jQueryに依存しています。 $.param を使用した最初のアプローチは機能しましたが、jQuery の依存関係を削除したいと考えています。
その後の data と params の試行は期待した結果を得ることができず、JSON 文字列化も失敗したことが判明しました。 AngularJS には確かにこのためのメソッドが用意されているので、その解決策を見てみましょう。
URL パラメータのデータの変換
POST 経由でフォーム データを送信するための鍵は、オブジェクトを変換することですデータを URL パラメータに変換します。 AngularJS は、送信前にリクエスト本文をカスタマイズできるtransformRequest 関数を提供します。
Transformation を使用した Post リクエストの例
$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 1.4 以降
AngularJS 1.4 以降では、これをさらに簡素化する新しいサービスが導入されました。 プロセス。ただし、上記のアプローチは以前のバージョンでも引き続き有効な解決策です。
以上がjQuery を使用せずに AngularJS で URL エンコードされたデータを POST する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。