正文
需要注意的地方:
1. 如果不指定dataType的话,会根据返回的头部信息判断(就是Content-type)。
综论
ajax返回3种数据格式:html文本格式,xml通用格式,json格式,
数据类型:整数,字符串,数组,对象
ajax返回整数类型
/**
* ajax_delete
*/
$(".delete").click(function(){
var id = $(this).attr('id');
var flag = confirm("确定要删除第"+id+"条信息吗?");
if(flag){
var tr = $(this).parent().parent();
$.get("index.php?r=demo1/delete",{id:id},function(data){
console.log(data);
if(data==1){
tr.remove();
alert("删除成功");
}else{
alert("删除失败");
}
})
}
})
这样,后台一个判断,执行则返回1就好了,可以说是最简单的ajax了。通常返回整形都是做判断用。是否删除啊,.....,虽然简单,但是很常用。
ajax返回Html/text(字符串类型)
与上面返回int相对应的呢...比如ajax添加,就会返回html或者text,也就是string类型的数据。
ajax返回json
因为json没有格式,相同内容占用空间少处理快,所以较xml,字符串(text/html)而言,我们更经常处理json。
$.ajax({
type:"GET",
url:"address_do.php",
//dataType:"json",
data:{postcode:postcode},
success:function(data){
console.log(data);
location.href="address_do.php";
if(data.success == 1){
var str = "";
str += "
"+data.result.lists[0].simcall+"
";
str += "
"+data.result['asc']+"
";
$("button").after("
"+str+"
");
}
}
})
$.get(url,data,function(msg){
msg = eval("("+msg+")");
if(!(/^[0-9][0-9]{5}$/.test(postcode))){
str += "
您输入的邮政编码不正确
";
$("button").after("
"+str+"
");
}else{
str += "
"+msg.result.lists[0].simcall+"
";
str += "
"+msg.result['asc']+"
";
$("button").after("
"+str+"
");
}
},'json');alert(data);
success:function(data){
console.log(data);
var result = data['result'];
var str = "";
str += "
手机号
|
归属地
|
区号
|
数据来源
|
"+result['phone']+"
|
"+result['att']+"
|
"+result['postno']+"
|
|
";
$("#click").after(str);
}
$.ajax({
type: "GET",
url: "Ajax/Test.ashx",
data: "HandleType=GetList&PName=" + escape($("#localvalue").val()), //要发送的数据
dataType: "text",
success: function (data) {
if (data != null && data != "") {
var dataObj = eval("(" + data + ")"); //转换为json对象
var html = "";
for (var i = 0; i < dataObj.length; i++) {
html += "
";
html += "
" + (parseInt(i) + parseInt(1)) + "" + dataObj[i].Name + "";
html += "
";
}
$("#table").html(html);
}
}
})
html部分
eval的使用
PS:红色部分是容易出错的地方,也就是ajax返回数据的拼接,也是ajax的难点之一。
另外,需要注意的是,这段代码里设定返回数据类型是text,所以需要用eval把返回数据处理
参考
http://blog.csdn.net/ztzy520/article/details/54410967
用eval()方法把返回来的json数据转换成数组
data=eval('('+data+')');
$("#search").click(function(){
var obj = $(this);
var searchContent = obj.prev().val();
alert(searchContent);
$.ajax({
url:"index.php?r=news/search",
type:"post",
dataType:"json",
data:{searchContent:searchContent},
success:function(data){
var str = "";
str+='
ID
|
新闻标题
|
新闻内容
|
分类
|
图片
|
操作
|
'+data[i].news_id+'
|
'+data[i].newsTitle+'
|
'+data[i].newsContent+'
|
'+data[i].cate_name+'
|
|
删除
/
修改
|
';
str+='
';
str+='
';
str+='
';
str+='
';
str+='
';
str+='
';
str+='
';
str+='
';
if(data == 0){
str+="
没有搜索到相关数据";
}else{
for(var i=0;i
str+='
';
str+='
';
str+='
';
str+='
';
str+='
';
str+='
';
str+='
';
str+='
';
}
}
$("#table").html(str);
}
})
})
转自: https://segmentfault.com/a/1190000009426706
作者: jeffcott_lu