Phonegap FileTransfer和JQuery Mobile JSON响应

时间:2012-04-27 15:31:32

标签: jquery json jquery-mobile cordova

我需要专家帮助。

我想上传一张图片到我的PHP脚本,它的工作原理。 现在,我希望在上传到我的div #showdata后返回JSON响应,但它不起作用:(

开始转移上传

     var options = new FileUploadOptions();
                options.fileKey="file";
                options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
                options.mimeType="image/jpeg";

                var params = new Object();
                params.message = pmsg;
                options.params = params;
                options.chunkedMode = false;
        var ft = new FileTransfer();
        ft.upload(imageURI, server, function(r) {
        document.getElementById('camera').innerHTML = "Upload successful: "+r.bytesSent+" bytes uploaded.";  
        $.mobile.hidePageLoadingMsg();

 // here get the Json response

    $('#showdata').html("<p>item1="+r.item1+" item2="+r.item2+" item3="+r.item3+"</p>");}, function(error) {
    document.getElementById('camera').innerHTML = "Upload failed: Code = "+error.code;              
    }, options); }

你能帮助我,我如何显示JSON结果。 谢谢!

2 个答案:

答案 0 :(得分:3)

因此,在您的成功功能中,您会得到FileUploadResult,您称之为&#34; f&#34;。好吧f有一个名为&#34;响应&#34;它为您提供PHP页面的响应。您必须查看响应并使用JSON.parse()将其转换为Object。

答案 1 :(得分:0)

来自服务器PHP页面的响应:

return json_encode(array('item1'=>'value1', 'item2'=>'value2'));

在javascript中解析FileUploadResult:

try {
    var obj = JSON.parse(FileUploadResult.response); // Produces a SyntaxError
} catch (error) {
    console.log(error.message); // Handle the error - Unexpected token
}

尝试使用eval:

eval('var obj=' + FileUploadResult.response);