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})

并且obj为 NULL。

我在这里做错了什么?

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. 响应 + 状态应该用引号引起来

IE

{
    "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 回答