ajax请求示例:
//文件上传
function importExcel() {
var formData =new FormData($("#import"));
var frontphoto=$('#files').get(0).files[0];
formData.append('files',frontphoto);
console.log(formData);
$.ajax({
type:'post',
dataType:"json",
url:'/oa/api/uploadFirmware',
data:formData,
async:false,
processData: false,
contentType: false,
success:function(data){
if (data.code == "0001") {
$.toastSuccess("上传成功");
queryData();
}else{
$.toastInfo(data.message);
}
}
});
}
//JSON格式参数请求:
function upgrade() {
var sn=$("#sn").val();
var model=$("#model").val();
var param = JSON.stringify({
"sn":sn,
"model": model
});
alert(param);
$.ajax({
type:'POST',
contentType:'application/json',
dataType: "json",//预期服务器返回的数据类型
url:'/oa/api/updateFirmware',
data:param,
success:function(data){
if (data.code == "0001") {
$.toastSuccess("上传成功");
}else{
$.toastInfo(data.message);
}
}
});
}
注:比较两种请求主要区别在于
processData: false,
contentType: false,
processData: false,
在使用jQuery的$.ajax()方法的时候参数processData默认为true(该方法为jQuery独有的),默认情况下会将发送的数据序列化以适应默认的内容类型application/x-www-form-urlencoded,如果想发送不想转换的的信息的时候需要手动将其设置为false。
contentType: false,
它的作用是告诉服务器,浏览器发来了什么数据。一般情况下,我们不需要设置它。默认值为’application/x-www-form-urlencoded; charset=UTF-8’);
上传文件时,我们会将content-type设置成flase。