码迷,mamicode.com
首页 > 编程语言 > 详细

Javascript与Ajax

时间:2015-07-12 00:02:14      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

  不使用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

标签:

原文地址:http://www.cnblogs.com/ibgo/p/4639552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!