js jQueryスクリプトは、フォームデータをオブジェクトに適切にフォーマットしてPHPコードに送信しています。jQuery ajax ApacheへのPOSTリクエストPHPサーバーがデータを受信しない
$("#formSignup").submit(function(e){
// Map the array into a properly formatted object
var data = {};
$.map($(this).serializeArray(),function(n, i){
data[n.name] = n.value;
});
// Send the http request
$.ajax({
type: "POST",
url: "api/signup.php",
data: JSON.stringify(data),
contentType: "application/json",
success: function(response){
//console.log(JSON.parse(response));
console.log(response);
},
failure: function(err){
console.error(err);
}
});
e.preventDefault(); // Don't submit defaultly
});
ただし、PHPはデータを受信できません。 print_r($_POST)
は空の配列を出力し、値にはアクセスできません。間違ったファイルからの応答も得られません。
これは、mozilla開発コンソールによって記録されたXmlHttpRequestがJSONデータを明確に投稿していることを考えると、かなり奇妙です。
その他の質問は、サーバーによって行われたリダイレクトを示すことによって回答されています。しかし、私はこれらの設定で全く何もしていないし、自分の機能を持って同じサーバ上で仕事をしている間に、後でリクエストを受け取った。
PHPコードのサンプルがありますか? – Nick
@ニックそれについて特別なことは何もありません。 $ _POST変数は単に空です。 –
PHPはJSONを '$ _POST'にデコードできません。実際にJSONとしてデータを送信したい場合は、 'json_decode(file_get_contents(" php:// input "))' – Barmar