0

jQueryを介してphpスクリプトに投稿しています:

$.post('http://*****.php', {'clicked':'true'}, 'json');

投稿データを見ると、次のように応答します。

Request URL:http://*****.php
Request Method:POST
Status Code:200 OK

ヘッダーのフォームデータは次のようになります。

clicked:true

PHPスクリプトでPOSTデータを取得しようとすると、次のようになります。

var_dump($_POST);

空の配列を取得します:

array(0) { }

ただし、コマンドラインで遊んでいると、次のようにすると、応答から投稿データを正常に表示できます。

wget --post-data 'clicked=true' http://****.php

wgetでの成功した応答は次のとおりです。

array(1) {
  ["name"]=>
  string(4) "test"
}

私はそれを理解することができませんでした...そしてそれは私のHTACCESSファイルではありません。また、GETリクエストは問題なく機能します。jQuery POSTが間違っていると思いますが、それが何であるかわかりません。jQueryドキュメントから直接取得されます。

4

2 に答える 2

3

POSTデータがJSON文字列として送信される場合$_POST、データは表示されません。アクセスするには、を使用する必要がありますphp://input

$phpinput = file_get_contents("php://input");
if(!$phpinput) {
  //No data was sent
}
else {
  //Do something with yo data
}

この技術的な詳細については、以下のコメントの1つに投稿されたこのすばらしい回答を確認してください。

于 2013-03-19T15:57:56.123 に答える
0

代わりに生の$.ajaxを使用してください

$.ajax({

url : 'http://*.php', data : {'clicked':'true'}, dataType : 'json', method : 'post'

});

于 2013-03-19T16:16:26.097 に答える