AngularJSの$httpを比較分析した.postとjQuery.postの違い

1377 ワード

多くの場合、ajaxでpostデータを提出する必要があります.angularjsはjqと似ています.パッケージされたpostもあります.
しかしjQueryのpostはangularjsより明らかに簡単で、人間的です.
AngularJS:
 
  
$http.post('do-submit.php',myData)
.success(function(){
    // some code
});

jQuery:
 
  
$.post('do-submit.php', myData, function() {
    // some code
});

何の違いもないように見えますよね?しかしangularjsの$httpでコミットされたデータはphpサーバ側では$REQUEST/$_POSTが取得しましたが、次の操作が必要です.
 
  
$params = json_decode(file_get_contents('php://input'),true);

に表示されます.何が原因ですか.
これは両者のpostによるheaderの処理が異なるためである…jQueryはJSONオブジェクトであるmyDataをシーケンス化している.例えば:
 
  
var myData = { a : 1, b : 2 };
// jQuery post myData :"a=1&b=2"

Angularはできません
解決策は何ですか.
1.ターゲットユーザが数十Kのスクリプトを複数ロードすることを気にしないことを前提としてjqueryを導入する.(推奨しない)
2.サーバ側(PHP)で$params=json_を通過decode(file_get_contents('php://input'),true);パラメータを取得して、小さいプロジェクトはできて、大きいプロジェクトは1つ1つ変更します.(推奨しない)
3.Angularの$httpProviderのデフォルト処理を変更します.http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/(今後の管理を容易にするためには、これが最善の方法です)
皆さんはAngularJSの$httpについて話していますか.postとjQuery.postの違いはさらに認識されましたね.本文を読んで得られることを願っています.