2

さて、ここに私のajaxリクエストがあります:

$("#scoreForm").submit(function(e){
    e.preventDefault();
    var nickName = $('#nickName').val();
    var gameScore = parseInt($('#gameScore').text());
    var result = {  'result' : '{ "nick":"'+nickName+'", "score":'+gameScore+' }' };
    //var result = { "nick":nickName, "score":gameScore };
    $.ajax({
        url: "http://localhost:8888/snake/addScore.php",
        type: "POST",
        data: result,
        //dataType: "jsonp",
        success: function(data){
            alert("siker");

        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert("bukta " + textStatus);
            //console.log(data);
        }
    });
    return false;
});

そして私のphpプロセスコード:

$json_decoded = json_decode($_POST['result'],true);
//$nick = $_GET['nick'];
//$score = $_GET['score'];

$mysqli = new mysqli("localhost", "root", "root", "snake",8889);
//$mysqli->query("INSERT INTO scores(nickName,score) VALUES('".$nick."', ".$score.")");
$mysqli->query("INSERT INTO scores(nickName,score) VALUES('".$json_decoded['nick']."', ".$json_decoded['score'].")");

echo "true";

これでデータベースにデータが挿入されましたが、ajax はまだエラー イベントを発生させています。dataType を jsonp に設定するとトラフになることを読みましたが、解析エラーが発生しました。どうすればそれを乗り越えることができますか?

4

1 に答える 1

4

phpスクリプトで$_POST変数にアクセスする場合は、JSONオブジェクトにパッケージ化されている方法でそれらを参照する必要があります。

$_POST['nick']
$_POST['score']

アイテムを$_POST['result']として参照し、jsonデコードアプローチを使用する場合は、次のようにパッケージ化する必要があります。

var result = {  result : { "nick":nickName, "score":gameScore } };
于 2012-11-01T18:40:20.047 に答える