Javascript與Ajax

來源:互聯網
上載者:User

標籤:

  不使用jquery來處理ajax請求該怎麼做?
  首先要明確html中的某些資料需要從服務端獲得,也就是用戶端向服務端請求(request)資料,服務端就響應(response)這個請求,把用戶端要的資料給它。服務端返回的資料格式多樣,即可以是字串,也可以是數字,也可以是對象。用戶端接到這些資料後按自己的需要處理後顯示在Html頁面上。這個處理工作就交給Javascript來做。
    Javascript處理Ajax非同步請求要注意三點:
  1、建立一個新的XMLHttpRequest對象;
  2、建立一個擷取資料的函數;
  3、建立一個回呼函數;

  我們的目標是在文字框內輸入名字傳遞給服務端,經過計算後在當前頁面顯示從服務端送回的資料。

<!DOCTYPE html><html>  <body>    <a href="http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/">Ajax study</a>    </br>    Enter your name:    <input type="text" id="name" onChange="getInfo();" />    </br>    Show Ajax return data: <span id="getInfo"></span>    <script type="text/javascript">     // javascript Ajax     // 建立新的請求對象     var request =new XMLHttpRequest();     // 擷取資料     function getInfo(){       var name=document.getElementById(‘name‘).value;       var url="/get_info/"+escape(name);       // 開啟請求       request.open("GET",url, true);       // 指定回呼函數       request.onreadystatechange=updatePage;       // 發送請求(發送的內容為null表示通過Get請求)       request.send(null);     }     // 回呼函數(伺服器向網頁發起調用)     function updatePage(){       if(request.readyState==4){         if(request.status==200){           // 讀取響應文本           var response=request.responseText;           // 可以處理返回的文本。若是json字串則可轉為對象以便處理。           // 轉換為json對象的方式多種:           var jsonObj=eval(‘(‘+response+‘)‘);           // 或者:           var jsonobj=JSON.parse(response);           // 把資料返回給頁面           document.getElementById(‘getInfo‘).innerHTML=jsonobj.name;           alert(‘You enter is : ‘+ jsonobj.name);         }       else if(request.status==404)         alert(‘request url does not exist.‘);       else         alert(‘error:status code is :‘ + request.status)       }     }    </script>  </body></html>

這裡的

 var response=request.responseText;

返回的就是一個字串:

"{\n "age": 2,\n "name": "Hello world "\n}"

服務端代碼:

# 這個顯示 info.html 頁面
@app.route(‘/info‘)def xxx(): return render_template(‘info.html‘)


# 這個是要執行的動作(必須要有個路由,html頁面裡的js需要這個url。函數名字隨便起。)
@app.route(‘/get_info/<name>‘)def x (name): ls ={‘name‘:name, ‘age‘:2} return jsonify(ls)
 

-- End --

Javascript與Ajax

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.