关于ajax

来源:互联网 发布:淘宝做什么 编辑:程序博客网 时间:2024/05/16 17:25
因为这次项目用了前后端分离,所以前端会有很多的ajax。然后自己总结了一点自己ajax方面遇到的问题
一:async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行
   dataType:响应参数的类型
  contentType:请求类型参数(设置为json时候后台的request.getparammter就获取不到了,因为他是根据键值对来取值的)
二:ajax的上传和下载:
1,上传:关键是formData 的获取传输
function up() {
var urlg2 = $.cookie('urlg');
var formData = new FormData();
formData.append("file",document.getElementByIdx_x_x("file1").files[0]);
$.ajax({
url : urlg2 + "/uploadAndDownload/uploadFile",
type : "POST",
data : formData,
contentType : false,
processData : false,
success : function(data) {//后台return 的是字符串
;
},
error : function() {
;
}
});
}
2,下载:(没有用ajax实现)
下载:ajax不支持下载JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。
function down(){
var row = $('#dg').datagrid('getSelected');
var urlg2 = $.cookie('urlg');
//下载文件的地址
var url=urlg2+"/uploadAndDownload/download?id="
+ row.coursewareCode;
document.getElementByIdx_x_x("ifile").src=url;
}
注:ifile 为一个隐藏iframe的id ,其实就是利用了iframe去下载的
三:ajax跨域请求携带cookie信息
ajax 跨域请求头中要携带cookie信息(sessionid)加:
xhrFields: { withCredentials: true}
easyui 中修改他的源代码(搜'ajax':他的原理也是ajax实现的) 加上上面的属性即可
0 0
原创粉丝点击