最近學了Ajax,Ajax能夠在不刷新頁面的狀況和服務器通訊,Jquery也有Ajax,下面記錄下原生JS的Ajax和JQuery的Ajaxjavascript
這裏使用了百度的熱搜接口,https://www.baidu.com/su?wd=?&cb=?html
JS原生Ajaxjava
function getData(data){ var script = document.querySelector('#jsonp'); script.parentNode.removeChild(script); $('ul').html(''); for(var i = 0 ;i<data.s.length;i++){ $('<li>'+ data.s[i] +'</li>').appendTo('ul'); console.log("ss"); } } function getList(wd){ var script = document.createElement('script'); script.id = 'jsonp'; console.log(wd); script.src = 'https://www.baidu.com/su?cb=getData&wd=' + wd; document.body.appendChild(script); } $('input').keyup(function(){ var wd = $(this).val(); getList(wd); })
這樣經過百度熱搜接口查找input的value的熱搜;wd=後面跟的就是想要搜索的關鍵字ajax
在JQuery下Ajax簡單多了json
var v = $('input').val(); $.ajax({ type:'get', url:'https://www.baidu.com/su', dataType:'jsonp', jsonp:'cb', data:{ wd:v } }).done(function(resp){ alert(resp.s); })
當時,我input的value是sss,但將wd=sss傳過去,返回的內容中s是空的服務器
我覺得沒獲取到input的value,而後在控制檯輸出value,確有其值,那就奇怪了,爲何沒搜到呢,我一度覺得Jquery的ajax下data不能傳變量,因此纔沒把value傳到服務器去,結果。。。。。。input的value改爲其餘的,就能獲得返回的s內容。由此得出sss這個字符串估計沒人搜。。。。。。。。app