0

jqueryがjsonを必要としないという問題があります。

ここに私のjqueryコードがあります:

        $.ajax({
            type: "POST",
            url: "js/resize.php",
            data: data,
            success: function(data) {       

/* works
          var data = [
                    {"og_src":"img\/base\/logo.png","src":"img\/base\/das-logo.png"},
                    {"og_src":"\/img\/studio\/lounge-2.JPG","src":"\/img\/studio\/lounge-2.JPG"},
                    {"og_src":"\/img\/studio\/desk.JPG","src":"\/img\/studio\/desk.JPG"}
                    ];

*/

    // console.log(data);
                $.each(data, function(key, image){
                 console.log(image);
                    var el = $("img[rel='"+image.og_src+"']");
                    ...

送信されたデータをスクリプトにコピーして var data = ... を作成すると、正常に動作します。

PHP データは単純な echo json_encode($stack); によって作成されます。

php-echo を次のようにすると

echo '[{"og_src":"img\/base\/logo.png","src":"img\/base\/das-logo.png"}, {"og_src":"\/img\/studio\/lounge-2.JPG","src":"\/img\/studio\/lounge-2.JPG"}, {"og_src":"\/img\/studio\/desk.JPG","src":"\/img\/studio\/desk.JPG"}]';

エーテルは機能しません。

すべてのファイルは UTF-8 です。

Console.log は console.log(image); の結果を示します。一文字で; 何が悪いの、私は今これを何時間も試しています、そして私は非常に絶望的です. 事前に助けてくれてありがとう。

4

2 に答える 2

2

JSON が HTML として解釈されているようです (実行するeachと、HTML ソースの各文字がループされます)。

PHP スクリプトが JSON を出力していることを確認してください (PHP のデフォルトは HTML です)。

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

サーバーが何を言っても、jQuery ライブラリが HTTP 要求の結果を JSON として解析しようとするように、dataType: "json"オプションを渡すこともできます。ajaxただし、HTTP 応答に正しい情報を含めることは、よりクリーンなソリューションです。

于 2013-04-15T10:27:45.177 に答える