Ajax无法从php接收json

时间:2017-05-16 12:13:18

标签: php jquery

目前我的项目需要我通过ajax发送文件。我一直在线搜索并按照步骤操作。 Here是我追随的结果。它确实完美地发送到服务器站点的文件,但有返回json的问题。我一直在尝试echo string,int和json。只有json没有回来。

我也尝试删除了contentType:false,它确实能够返回json但不会将文件传递给后端。

from.php

var country_code = $('#country_code').val();
        var operator = $('#operator').val();
        //var upload_file = $('#upload_file')[0].files[0].name;
            var upload_file_info = $("#upload_file").prop('files')[0];
        console.log($);
        var frmData = new FormData();
        var action = $("#frmImport").attr('action');
            frmData.append('upload_file', upload_file_info);
            frmData.append('operator', operator);
            frmData.append('country_code', country_code);

        $.ajax({
            type: 'post',
            data: frmData,
            url: action,
            dataType: 'json',
            cache: false,
                    contentType: false,
                    processData: false,
                    timeout: 30000,
            success:
                function(data) {
                    if(data['status'] == 1)
                    {
                        var txt;
                        var r = confirm(data['message']);
                        if (r == true) {
                            location.href = '/operator/importoperatorinfo?country_code='+data['upload_info']['country_code']+'&operator_id='+data['upload_info']['operator_id']+'&filename='+data['upload_info']['new_filename'];
                        } else {
                            return false;
                        }
                    }
                    else
                    {
                        alert(data['message']);
                        $('#upload_file').focus(); 
                        return false;
                    }
                },
                    error:
                        function(error,data)
                        {
                            console.log(data);
                        }
        });

process.php

 <?php

    echo json_encode(array('status'=>200));
?>

1 个答案:

答案 0 :(得分:-1)

在ajax成功函数中,您需要先解析json输出。

var data = JSON.parse(data);

然后使用data.status访问您的输出,因为输出是一个对象,并且您正在使用数组语法。