4

Pluploadを使用してファイルをアップロードしていますが、正常に動作します。

Stackoverflowでここにあるさまざまな提案をテストしましたが、JSONの応答から適切なデータを取得できません。

私のupload.phpファイルにはecho json_encode($result);

私のJSでは、次のことを行います。

  uploader.bind('FileUploaded', function(up, file, response) {
    var obj = jQuery.parseJSON(response);
    var obj2 = eval(response);

    alert(response.toSource()); // <-- Outputs raw data
    alert(obj); // <-- is NULL
    alert(obj2.toSource()); // <-- Outputs eval data format
    alert(obj2.logo_url); // <-- Is not working
  });

これalert(response.toSource());を返します:

({response:"{
  \"logo_url\":\"http:\\/\\/mysite.com\\/uploads\\/3b\\/7b019482c806f9_logo.jpeg\",
  \"img_id\":\"30\",
  \"feedback\":{\"message\":\"File uploaded\",
  \"success\":true}}", 
  status:200})

そしてobjNULLです。

私はここで何が間違っているのですか?

4

2 に答える 2

3

var uploader = $("#multi_upload").pluploadQueue();

uploader.bind('FileUploaded', function (up, file, res) {
    var res1 = res.response.replace('"{', '{').replace('}"', '}');
    var objResponse = JSON.parse(res1);
    alert(objResponse.fn);
});
于 2013-11-15T17:04:49.213 に答える
2

いろいろ間違ってる

  1. \" エスケープしている引用符を削除します
  2. 応答 + ステータスは引用符で囲む必要があります

すなわち

{
    "response": {
        "logo_url": "http: \\/\\/mysite.com\\/uploads\\/3b\\/7b019482c806f9_logo.jpeg",
        "img_id": "30",
        "feedback": {
            "message": "Fileuploaded",
            "success": true
        }
    },
    "status": 200
}
于 2012-04-25T10:50:40.487 に答える