0

json 応答を伴う単純な php への ajax 呼び出しがあります。私はこれらを何度も書いてきましたが、この問題に遭遇したことはありません。

Ajax は「id」パラメーターを正常に送信し、PHP はそれを受信して​​動作し、json 応答を返します。これが問題の始まりです。パラメータの1つは常にnullです。理由が見つからないようです。PHP を手動でテストしたところ、両方の値が返されました。ajaxをチェックして、idパラメーターが復活するかどうかを確認しました。したがって、問題は、json 応答が送信され、jquery ajax によって受信されることです。

 // This gets the paramaters from the url
 theParams = parseURLParams(document.URL);

 // ^^ it returns an id, like this  {"id":"4a17bcb93fe3fac3978671a66959d902"}

 $.ajax({
    url: 'viewer_code.php',
    type: 'GET',
    dataType: 'json',
    data: {id: theParams.id},
    success: function(dataImg) { 

    alert(dataImg.imgUrl);

    }
});

およびPHP(すべて問題ないようで、すべてサニタイズされます)

    $id = $_GET['id'];

    $q = "SELECT * FROM `images` WHERE id = '$id'";
    if(!($result_set = mysql_query($q))) die(mysql_error());
        $row = mysql_fetch_array($result_set);

        $thumb = $row['thumb'];
        $image = $row['image'];

        header('Content-Type: application/json');
        echo json_encode(array("imgUrl" => $image, "id" => $id));

PHP を手動でテストすると、次のように返されます。

常にnullを返すのはimgUrlです。なぜこれが起こっているのか誰にも分かりますか? ああ、SOに関する以前の質問が示唆したように、GETからPOSTに切り替えてみましたが、違いはありませんでした。

助けてくれてありがとう、乾杯みんな:)

4

1 に答える 1

1

id: theParams.id使用する代わりに、id: 1jsonが正しくない変数を処理しようとして大きな問題が発生しました。

一方、私は同様のコードを実行していますが、

header('Content-Type: application/json');

あなたはあなたのphpファイルで試してみましたかecho json_encode(array("imgUrl" => 'image.jpg', "id" => '1'));それらのテストに応じて多分私はあなたをもっと助けることができます

于 2013-03-05T16:46:01.103 に答える