一直搞不懂这两种请求到底区别在哪呢,求大神指教,两种我接收数据的时候都是用的eval去解析的。
$.ajax({
type:"post",
url:"",
data:{key:val},
dataType:"json",
success: function aa(data) {
}
});
$.post("......<br/><strong>答案就在这里:</strong><a target='_blank' rel='nofollow' href='http://blog.csdn.net/bravezhe/article/details/7843403'>jquery ajax post 的区别</a><br/>----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
$.post就是post请求,$.ajax可以通过配置type为get/post(及其他可用的http方法,如get,delete)指定提交方法,返回数据jquery一般会通过响应头来判断类型自动生成对应的数据,如响应头为application/json会自动转为json对象,其他当做text/html处理
$.post最终使用的还是$.ajax方法,只是一些参数做了默认处理。$.ajax可以更详细的配置ajax请求信息,如请求头,方法等。。
http://www.hi-docs.com/jquery/$.post.html
http://www.w3school.com.cn/jquery/ajax_ajax.asp
$.ajax请求包含几种请求类型,$.post是其一种,是指请求类型是POST方式,另外还有$.get,是指请求类型为GET方式
本质上就是ajax请求,只是把type变为了post,,
$.post就是封装好的type为post的$.ajax,省去了一些设置
$.ajax $.post $.get 都是对于原生的XMLHttpRequest请求数据的封装。
1、$.post 对于封装原生XMLHttpRequest的请求数据做的是POST的方式请求数据
2、$.get 对于封装原生XMLHttpRequest的请求数据做的是GET的方式请求数据
3、$.ajax 对于封装原生XMLHttpRequest的请求数据 允许传递参数来处理不同的请求方式。
4、相对来说、$.ajax 的方法中的参数更多一些、或者说更加灵活一些、包括好了很多好的参数比如说
async(默认值是ture):false,让当前的$.ajax变成同步,可以根据业务需求来选择
beforeSend、error、dataFilter、success、complete 不同的回调函数、可以分别对对请求之前、请求错误、请求成功、请求完成
不同的结果来处理不同的业务逻辑。更多的可以看看w3c的帮助文档。
总得来说$.ajax 可以更好的支持业务逻辑、如果不喜欢$.ajax 调用的方式不是很喜欢、可以根据自己项目的需求,简单对jquery的$.ajax 进行再次封装即可。
之前说的只注意到你的标题,忘记看内容了
解决1、
$.ajax 还有一参数可以满足你的需求,dataType:"JSON",
如果你的返回的类型一定的是JSON 的话,这样,回掉函数里的参数直接使用就可以了,不用eval了就,
解决2、
当然,$.post(url,data,function(){},'JSON'); $.post 方法这样也是可以满足你的需求的。
这样的问题从网上一搜就出来了