1

私は最初のAJAX交換を完了しようとしていますが、ホームストレッチで動けなくなっています。AJAXを介してphpページに送信しているJSON文字列がありますが、verify.phpこのデータを受信しようとすると、ページのコードで示されているように、 $_POSTatverify.phpは完全に空のようです。verify.php

if(empty($ _ POST)){
   エコー'空';
} そうしないと {
   エコー'空ではない';
}

これがなぜなのか私にはわかりません...私のAJAXコードは大丈夫のようです:

$ .ajax({
   タイプ:'POST'、
   url:'serverside / verify.php'、
   data:data、//dataはjavascriptobjです。これはJSON.stringify'iedされています。
   dataType: "JSON"、
   成功:function(returned){
      console.log(返された);
   }                
});

そして、JSON文字列をconsole.logに記録すると、正常に表示され、成功したコールバック関数でさえ、コンソールに「空」をログに記録しています(上記のifステートメントが原因で「空」をエコーし​​ているため) 。したがって、交換は正常に行われているように見え、データは正常に送信されているように見えますが、明らかに$_POSTスーパーグローバルに到着していません。誰かが理由を説明できますか?

4

1 に答える 1

2

ステップを逃したかどうかを確認してください!

//変数を宣言します

   var jsonObj = {demo: 'this is just a simple json object'}

//JSONオブジェクトを変換しましょう

   var postData = JSON.stringify(jsonObj);

//文字列化されたjsonを投稿用の変数に入れましょう

   var postArray = {json:postData};

 $.ajax({
   type: 'POST',
   url: "http://somedomain.local.com/phpfile.php",
   data: postArray,
   success: function(data){
      // Do some action here with the data variable that contains the resulting message
   }
 });

輸送のために入れられた紐からスラッシュを取り除く必要があります。次に、json_decodephp関数を実行します。その後、phpオブジェクトにアクセスして、好きなように使用できます。

  if(isset($_POST["json"])){
    $json = stripslashes($_POST["json"]);
    $output = json_decode($json);

    // Now you can access your php object like so
    // $output[0]->variable-name
  }

お役に立てば幸いです。

于 2013-03-13T08:28:46.350 に答える