ホームページ > ウェブフロントエンド > htmlチュートリアル > AngularのポストパラメータバックエンドPHPがreceive_html/css_WEB-ITnoseを受信できない

AngularのポストパラメータバックエンドPHPがreceive_html/css_WEB-ITnoseを受信できない

WBOY
リリース: 2016-06-24 11:21:35
オリジナル
1268 人が閲覧しました

多くの場合、投稿データを送信するために ajax を使用する必要があります。Angularjs は jq に似ており、カプセル化された投稿もあります。

しかし、jQuery の投稿は angularjs の投稿よりも明らかにシンプルでユーザーフレンドリーです。

両者に違いはないようです。 angularjs の $http を使用して送信されたデータは、PHP サーバー上の $_REQUEST/$_POST を通じて取得できません。

これは、2 つの投稿でヘッダーの処理方法が異なるためです。jQuery は myData を JSON オブジェクトとしてシリアル化しますが、 Angular はそうではありません。

解決策:

Angular の $httpProvider のデフォルトの処理を変更する (最も完璧な解決策)

angular.module('MyModule', [], function($httpProvider) {  // Use x-www-form-urlencoded Content-Type  $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';   /**   * The workhorse; converts an object to x-www-form-urlencoded serialization.   * @param {Object} obj   * @return {String}   */   var param = function(obj) {    var query = '', name, value, fullSubName, subName, subValue, innerObj, i;          for(name in obj) {      value = obj[name];              if(value instanceof Array) {        for(i=0; i<value.length; ++i) {          subValue = value[i];          fullSubName = name + '[' + i + ']';          innerObj = {};          innerObj[fullSubName] = subValue;          query += param(innerObj) + '&';        }      }      else if(value instanceof Object) {        for(subName in value) {          subValue = value[subName];          fullSubName = name + '[' + subName + ']';          innerObj = {};          innerObj[fullSubName] = subValue;          query += param(innerObj) + '&';        }      }      else if(value !== undefined && value !== null)        query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';    }          return query.length ? query.substr(0, query.length - 1) : query;  };   // Override $http service's default transformRequest  $httpProvider.defaults.transformRequest = [function(data) {    return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;  }];});
ログイン後にコピー

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