JQuery的$.post,$.get都是有个bug(转)
Query的$.post,$.get都是有个bug的,之前在看jQuery源码关于AJAX处理这一部分的时候就发现了,没想到今天在实际应用的时候又遇上了。
其实问题很简单,记录一下。$.post现在支持了第3个参数,即返回数据的类型,如果server在返回json数据,那么一种简单的做法:
Js代码
- $.post('json.php', {n:1}, function(da
ta){ - alert(typeof da
ta); - alert(da
ta.value); - }, 'json');
如果没有参数:
Js代码
- $.post('json.php', function(da
ta){ - alert(typeof da
ta); - alert(da
ta.value); - }, 'json');
这两种的结果是不一样的! 前者的da
jQuery的$.post实现:
Js代码
- post: function( url, da
ta, callback, type ) { - if ( jQuery.isFunction( da
ta ) ) { - callback = da
ta; - da
ta = {}; - }
- return jQuery.ajax({
- type: "POST",
- url: url,
- da
ta: da ta, - success: callback,
- dataType: type
- });
- },
可以看到,在没有da