1.4版的jquery使用以下调用方式没有问题
$.getJSON("http://zhidao.51auto.com/qa_json?type=3&size=5&jsoncallback=?",
function (result){
alert(eval("("+result+")") )
var qaStrHtml="";
$.each(result, function(i,item){
qaStrHtml+='<dl>';
qaStrHtml+='<dt><a target="_blank" href="'+item.url+'">'+item.question+'</a></dt>';
qaStrHtml+='<dd>';
qaStrHtml+='<span class="da">描述:</span>';
qaStrHtml+='<span class="hui">'+item.QContent+'</span>';
qaStrHtml+='<dd>';
qaStrHtml+='<span class="da">答:</span>';
qaStrHtml+='<span class="hui">'+item.answer+'</span>';
qaStrHtml+='</dd>';
qaStrHtml+='</dl>';
alert(qaStrHtml);
});
$(qaStrHtml).insertAfter($(".tit_a",$("#indexQaDiv")));
});
1.5以后的jquery使用上面调用方式就会报错:ReferenceError: jquery172026866009711494165_1372658096550 is not defined
经过不断摸索查阅官方文档发现如下:
As of jQuery 1.5.1, the jqXHR
object also contains the overrideMimeType()
method (it was available in jQuery 1.4.x, as well, but was temporarily removed in jQuery 1.5). The .overrideMimeType()
method may be used in the beforeSend()
callback function, for example, to modify the response content-type header:
翻译如下:
从jQuery 1.5.1开始, jqXHR
对象还包含了overrideMimeType
方法 (它在jQuery 1.4.x中是有效的,但是在jQuery 1.5中暂时的被移除)。.overrideMimeType()
方法可能用在beforeSend()
的回调函数中,例如,修改响应的Content-Type信息头:
改版策略使用如下方式实现:
$.getScript("http://zhidao.51auto.com/qa_json?type=3&size=5&jsoncallback=qa20130630");
function qa20130630(result) {
var qaStrHtml="";
jQuery.each(result, function(i,item){
qaStrHtml+='<dl>';
qaStrHtml+='<dt><a target="_blank" href="'+item.url+'">'+item.question+'</a></dt>';
qaStrHtml+='<dd>';
qaStrHtml+='<span class="da">描述:</span>';
qaStrHtml+='<span class="hui">'+item.QContent+'</span>';
qaStrHtml+='<dd>';
qaStrHtml+='<span class="da">答:</span>';
qaStrHtml+='<span class="hui">'+item.answer+'</span>';
qaStrHtml+='</dd>';
qaStrHtml+='</dl>';
});
jQuery(qaStrHtml).insertAfter(jQuery(".tit_a",jQuery("#indexQaDiv")));
}
官方文件可参考:http://api.jquery.com/jQuery.ajax/
http://www.css88.com/jqapi-1.9/jQuery.ajax/