Php 使用jquery ajax上传文件,然后获取json格式的响应,但无法显示json数据

Php 使用jquery ajax上传文件,然后获取json格式的响应,但无法显示json数据,php,jquery,ajax,Php,Jquery,Ajax,我试图用jQuery和php实现上传文件。我想实施的过程是: 选择文件 点击上传按钮 从php服务器获取响应 显示响应 然而,我只是不能让响应显示为它应该的样子,相反,它总是未定义的 我使用的twig.htm.twig如下所示: $document.readyfunction{ $btn.clickfunction{ var form_data=新FormData; var file_data=$upload_输入[0]。文件; 表单数据。附加“文件”,文件数据; $.ajax{ url:upl

我试图用jQuery和php实现上传文件。我想实施的过程是:

选择文件

点击上传按钮

从php服务器获取响应

显示响应

然而,我只是不能让响应显示为它应该的样子,相反,它总是未定义的

我使用的twig.htm.twig如下所示:

$document.readyfunction{ $btn.clickfunction{ var form_data=新FormData; var file_data=$upload_输入[0]。文件; 表单数据。附加“文件”,文件数据; $.ajax{ url:upload.php?act=upload, 数据:表格数据, 键入:“POST”, processData:false, contentType:false, 成功:函数数据{ alertdata.code; }, }; }; }; ... Php脚本是:


步骤1:将数据类型用作JSON

     $.ajax({
            url: "upload.php?act=upload",
            data : form_data,
            type : 'POST',
            dataType : "json",
            processData : false,
            contentType : false,
            success : function (data) {
                alert(data.code);
            },
        });
步骤2:使用JSON.parse方法

 $.ajax({
            url: "upload.php?act=upload",
            data : form_data,
            type : 'POST',
            processData : false,
            contentType : false,
            success : function (data) {
                var result = JSON.parse(data);
                console.log(result);
            },
        });

什么样的响应不显示或不显示您的期望?您是否希望运行twig或echo json_encode和Die您是否检查了浏览器的网络检查器,以查看请求是否按预期发送,以及响应是什么?您还可以使用console.logdata而不是alertdata.code转储响应,以查看其在控制台中的外观。它可能是你得到了一个字符串,而不是一个对象。尝试添加数据类型:“json”,作为ajax请求的设置。@Riton Elion请检查下面的答案