技术交流群:958923746,有学习视频,文档等。
一、ajaxFileUpload 上传使用。
问题:
文件上传成功后无法获取后台的数据,返回数据打印是ducment。
事例:一些业务性代码已经屏蔽,只展示问题代码。
下面代码在打印返回的数据不符,后台成功会返回一个 1的标记,但是打印结果是docment对象。
$.ajaxFileUpload({
type: "post",
contentType: "application/x-www-form-urlencoded",
url : ,
data: {},
secureuri:false,//一般设置为false
fileElementId:"file1",//文件上传空间的id属性
timeout : 10000, //超时时间设置,单位毫秒
datatype: "text",
success: function (data) {
console.log(data);
if(data == '-1'){
openPublicMessage('提示','重复!');
}else{
openPublicMessage('提示','成功');
}
}
});
下面是:解决问题后的代码如下:
$.ajaxFileUpload({
type: "post",
contentType: "application/x-www-form-urlencoded",
url : ,
data: {},
fileElementId:"file1",//文件上传空间的id属性
timeout : 10000, //超时时间设置,单位毫秒
dataType: 'text',//服务器返回的数据类型。可以为xml,script,json,html。如果不填写,jQuery会自动判断。
secureuri: false, //是否启用安全提交,默认为false。
async : true, //是否是异步
success: function (data) {
if(data == '-1'){
openPublicMessage('提示','重复!');
}else{
openPublicMessage('提示','成功');
}
}
});
结果:
比较一下,少了一个异步属性。印象中昨天弄这个时候写了这个属性,但是也没有成功,所以就删了。。千奇百怪。
async:补充一下这个属性的意思,默认值是true,即为异步方式,$.Ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程。若要将其设置为false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。