ajax是怎样传输数据的?

ajax是什么鬼呢?其实不难理解,它只是一个哥们“发明”的缩写:Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求。

 

Web的运作原理就是:一次http请求对应一个页面,这也是form表单提交之后会刷新页面的原因

如果用户停留在这个页面中,同时发生新的HTTP请求,就必须用javascrpt发送这个新的请求,接收到数据后,在用javascript更新页面,这样,用户就感觉自己仍然停留在当前的也民安,但是数据是不断更新的

 

用javascritp写一个完整的AJAX要注意:AJAX请求是异步执行的,也就是说,要通过回调函数获得响应。

 

AJAX的两种传输:post和get

基本步骤:

    1.创建连接

    2.客户端向服务端发送数据

    3.服务端向客户端返回数据

    4.客户端接收数据完毕

html代码

<div id="div"></div>
<input type="file" id="pic" />
<img src="" alt="" id="image" style="width:400px;height:30/>

script代码:
    //创建一个xhr对象
    var xhr = new XMLHttpRequest();    
   
  //请求过程中,readStatehi发生变化 //0 - 初始状态, //1 - 开始创建连接 //2 - 客户端向服务端发送数据 //3 - 服务端开始想客户端返回数据 //4 - 客户端接收数据完毕
  xhr.onreadystatechange=function(){ console.log(this.readyState);//1 2 3 4 }
  //请求状态可以有另一种写法,意义相同,表明后台已经成功返回数据 //等同于:if(this.readyState==4){}
   xhr.οnlοad=function(){
    console.log(this.responseText);
    }
   //发送数据
   //post
    var img = document.getElementById("pic");
    
img.οnchange=function(){

      xhr.open("post","11.14jsonData.php",true);\

      //FormData()建立对象传送数据

      var formData = new FormData();
      formData.append("title","京东方");
      formData.append("data","2017-11-14");
      formData.append("pic",img.files[0]);//选中的第一张图片
      //2.发送数据:send()方法
      xhr.send(formData);
    }


   //get
   xhr.open("GET","11.14jsonData.php?action=1&data=abc",true);
   xhr.send(null);

 

转载于:https://www.cnblogs.com/ydfqixn/p/7836118.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ajax经典怎样传输数据,$.ajax({ async: true, // 默认true(异步请求) cache: true, // 默认true,设置为 false 将不会从浏览器缓存中加载请求信息。 type: "POST", // 默认:GET 请求方式:[POST/GET] dataType: "xml", //默认["xml"/"html"] 返回数据类型:["xml" / "html" / "script" / "json" / "jsonp"] url: "Test.ashx", // 默认当前地址,发送请求的地址 data: { key: "value" }, // 发送到服务器的数据 error: function(xml) { alert('Error loading XML document' + xml); }, // 请求失败时调用 timeout: 1000, // 设置请求超时时间 success: function(xml) { // 请求成功后回调函数 参数:服务器返回数据,数据格式. $("#users").empty(); // 用Jquery处理xml数据 $(xml).find('Table').each(function() { var loginname = $(this).find("Loginname").text(); var name = $(this).find("Name").text(); $("#users").append("<li>" + loginname + " - " + name + "</li>"); }); /* $(xml).find('user').each(function(i) { var loginname = $(xml).find("user loginname").eq(i).text(); var name = $(xml).find("user name").eq(i).text(); $("#users").append("<p>" + loginname + "</p>" + "<p>" + name + "</p><Br />"); }) $(xml).find("student").each(function(i){ var id=$(this).children("id"); //取对象 var id_value=$(this).children("id").text(); //取文本 alert(id_value);//这里就是ID的值了。 alert($(this).attr("email")); //这里能显示student下的email属性。 //最后输出了,这个是cssrain的写法,貌似比macnie更JQ一点 $('<li></li>').html(id_value).appendTo('ol'); }); */ } })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值