1

コードが機能しないのはなぜですか?

データを送信していることはわかっていますが、

しかし、応答はありません。

jQuery

    $(document).ready(function(){
            $("form").submit(function () {

                var uname = document.getElementById("username").value;
                var pword = document.getElementById("password").value;
                var postData = {
                    username: uname,
                    password: pword
                };
                var PostDataString = JSON.stringify(postData);
                alert(PostDataString);

            $.ajax({
               url: "test.php",
               type: "GET",
               data: PostDataString,
               dataType: 'json',
               contentType: 'json',
               cache: false,
               success: function (ReturnData) {
                    alert("Yay!");
               } 
            });
    });
    });

PHP

$json = $_GET["PostDataString"];
$jsonarray = json_decode($json, true);
echo $jsonarray;  

4

1 に答える 1

4

json_decodeJSON 文字列を PHP 構造に変換するためのものです。 json_encode反対のことを行い、あなたが望むものです。JavaScript 側で json データ型が必要です。その場合、有効な JSON を取得できない場合、jQuery はエラーをスローします。

属性として JavaScript オブジェクトを受け入れるため、JSON.stringify変換は不要です。実際、JSON を文字列化すると、JSON がパラメーターとして送信されなくなります。$.ajaxdata

JSON.stringify取り外してそのまま送る場合postData$_GET['username']とにアクセスできます$_GET['password']が、それ以外にはアクセスできません。

于 2013-02-07T03:04:13.527 に答える