AnglarJSとバックエンドphpのデータのインタラクション方法


簡単に述べる:
AnglarJSは2009年に誕生し、Misko Heveryらによって創建され、Googleに買収されました。優秀な先端JSフレームで、Googleの多製品に使われています。AnglarJSは多くの特性を持っています。一番の核心はMVC、モジュール化、自動化双方向データバインディング、意味化ラベル、依存注入などです。
それはクラスだけではなく、完全なフレームワークを提供します。これはあなたと複数のクラスの倉庫の相互作用を免れました。複数のインターフェースの煩雑な作業を熟知する必要があります。Google Chromeの開発者が設計し、次世代のWebアプリケーション開発をリードしています。5年か10年後にはアングラーJSは使えないかもしれませんが、そのデザインのエッセンスはずっと使われています。
問題と方案:
フロントフレームである以上、バックグラウンドとのデータのやりとりは避けられない。本論文ではPHPデータとの相互作用における重点を説明する。
AnglarJSのhttpはPOSTかPUTかに関わらず、デフォルトの送信と要求のデータフォーマットはすべてjsonで、これは私達が送ったhttp要求の頭の中から見ることができます。charset=UTF-8です。PHPのGETまたはPOSTが受信したhttp要求データは、Content-Type:appplication/x-wn-form-urlencodedです。charset=UTF-8です。
だから初心者はAnglarJSを使う時にこの問題に出会います。明らかに送ってきましたが、どうしてデータがもらえないですか?この問題を解決するには、二つの面から始めることができます。
一、PHPにおいて

<?php
$data = file_get_contents("php://input");
echo $data;
そうすると、あなたは気づくはずです。dataはjsonのデータです。その後PHPの中で他の処理ができます。
二、Anglarにおけるhttp再構築要求

var ws = angular.module("app",[function ($httpProvider) {
 $httpProvider.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=utf-8";
 $httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
 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;
 };
 $httpProvider.defaults.transformRequest = [function (data) {
 return angular.isObject(data) && String(data) !== "[object File]" ? param(data) : data;
 }];
}]);
app構築時に直接httpを書き換えて、私たちがよく使う要求方式に変えます。この後は普通のajaxにお願いするようになりました。
以上のAnglarJSとバックエンドphpのデータのインタラクティブ方法は、小編集が皆さんに提供したすべての内容です。参考にしていただければと思います。