WeChatウィジェットpost要求サーバ側で取得できない解答


$_POSTは、Content-Typeがapplication/x-www-form-urlencodedおよびmultipart/form-dataであるPOSTデータのみを受信することができる.$_POSTを使うなら、ここを直してください.
header: {
              'Content-Type': 'application/json'
          }

上のapplication/jsonapplication/x-www-form-urlencodedに変更します(ファイルをアップロードするならmultipart/form-dataに変更しますが、微信ウィジェットのアップロードファイルは別のAPIを使っています.具体的にはドキュメントをよく見てください).
もしあなたがapplication/jsonを直さないことを堅持すれば、仕方がないわけではありません.
$input = file_get_contents('php://input');

POSTからのデータを読みに来ました.
参考資料(昨日友達のブログで見たばかり):http://blog.zhengzi.me/541.html
=================================================================================
PHPの$POST変数の浅い分析
posted on 2016年10月5日by政子in PHP
通常、PHPのスーパーグローバル変数$_を使用します.POSTは、HTTP POST方式を用いて送信された情報を受信する.しかし、場合によっては$POSTは、HTTP POST方式を用いてフロントエンドから送信されたデータを取得することはできない.
資料を検索すると$_が見つかりましたPOSTは確かに使用限界があり、HTTPヘッダのドキュメントタイプがフォームに伝達されたデータ、すなわちContent-Type:アプリケーション/x-www-form-urlencodedしか受け入れられない.
具体的にはPHP公式文書を参照してください.http://php.net/manual/en/reserved.variables.post.php#114598
jQueryを使用する場合、jQueryのPOSTメソッドでは常にContent-Typeがアプリケーション/x-www-form-urlencodedと自動設定されていますが、AngularJSフレームワークを使用する場合、Content-Typeがアプリケーション/jsonに設定されていることに気づき、PHPの$POSTはコミットされた情報を直接取得できません.
解決方法:
AngularJSが送信するPOSTリクエストを修正する際のHTTPヘッダの具体的な方法は、公式文書を参照してください.https://docs.angularjs.org/api/ng/service/$http#post、httpProviderのcontent-typeを直接修正することをお勧めしますが、修正に成功した後も正常に受信できません.具体的な原因は検査を続けます.
AngularにおけるjQLiteまたはjQueryは、POST要求の最も直感的な解決策を送信するが、コードの可読性を悪化させる可能性があり、を変換する必要がある.
PHPで他の方法で情報を受信する
$GLOBALS[‘HTTP_RAW_POST_DATA’]方式で受信.
HTTP_RAW_POST_DATA変数には、元のPOSTデータが含まれます.この変数は、MIMEタイプが認識されていないデータに遭遇した場合にのみ生成され、PHPがデフォルトで認識するデータ型はアプリケーション/x-www.form-urlencoded規格のデータ型であるため、HTTP_RAW_POST_DATAがデータを受信します.
使用php://input方式受信データphp://inputリクエストされた元のデータにアクセスできる読み取り専用ストリームです.POSTリクエストの場合は、使用することが望ましいphp://input$HTTP_の代わりにRAW_POST_DATAは、特定のphpに依存しないためである.ini命令.そして、この場合$HTTP_RAW_POST_DATAのデフォルトは入力されていません.alwaysをアクティブにするよりもpopulate_raw_post_dataは、より少ないメモリを必要とする可能性があります.
1
2
//使い方が簡単
$
input
=
file_get_contents
(
'php://input'
)
;
具体的には、公式文書を参照してください.http://php.net/manual/zh/wrappers.php.php#wrappers.php.input
参照ドキュメント:http://www.jb51.net/article/67296.htm