目前我的项目需要我通过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));
?>
答案 0 :(得分:-1)
在ajax成功函数中,您需要先解析json输出。
var data = JSON.parse(data);
然后使用data.status
访问您的输出,因为输出是一个对象,并且您正在使用数组语法。