本文实例讲述了thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json。分享给大家供大家参考,具体如下:
知识点总结
1.json格式标准
{
'key':"value"
}
{"state":"1","msg":"\u7b80\u5386\u6295\u9012\u6210\u529f\uff01"}
前端jquery ajax提交formdata
$.ajax({
})
formdata 获取表单数据 包括文件上传
HTML
姓名
手机号
附件简历:(您的详细信息请都写在简历上,只接受word文档)
选择要上传的简历
$(function() {
$('#doc-form-file').on('change', function() {
var fileNames = '';
$.each(this.files, function() {
fileNames += '' + this.name + ' ';
});
$('#file-list').html(fileNames);
});
});
提交
JS
function submitform() {
event.preventDefault();
var form =document.getElementById('recruitinfo'),
formdata = new FormData(form);
var url = '{:url("recruitinfo/postfrom")}';
$.ajax({
url:url,
type:'post',
data:formdata,
dataType:'json',
processData:false,
contentType:false,
success:function (res) {
console.log('请求成功!')
console.log(res)
},
error:function (XMLHttpRequest, textStatus, errorThrown) {
console.log('出错啦!')
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
}
})
}
php json_encode()函数转成json
$callbackinfo = array(
'state' => '1',
'msg' => '简历投递成功!',
);
$jsondata =json_encode($callbackinfo);
echo $jsondata;
问题
1.前端SyntaxError: Unexpected token < in JSON at position 0 报错
报错原因
使用的thinkphp5
没想到是因为使用了dump()函数 var_dump 这些最后echo出来的不正确导致的,还要要按标准格式来啊
解决方法
去掉dump相似的函数
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
您可能感兴趣的文章:TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
thinkPHP5 ajax提交表单操作实例分析
thinkPHP5框架实现基于ajax的分页功能示例
Thinkphp5框架ajax接口实现方法分析
ThinkPHP5 通过ajax插入图片并实时显示(完整代码)
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
ThinkPHP表单自动提交验证实例教程
ThinkPHP 防止表单重复提交的方法
ThinkPHP提交表单时默认自动转义的解决方法
thinkphp3.2实现在线留言提交验证码功能
ThinkPHP防止重复提交表单的方法实例分析