Ajax的实现

以你之姓@ 2023-08-17 15:28 188阅读 0赞

原生Ajax的实现

一、查阅开发文档

首先需要了解后台接口,需要提交哪些参数,返回哪些数据。这里我使用了一个返回json格式数据的登录接口为例,讲解怎么使用Ajax与后台接口交互。

后台文档

二、编写JavaScript(ajax)

  • post方法

    var xmlhttp;
    if (window.XMLHttpRequest){//IE7+, Firefox, Chrome, Opera, Safari

    1. xmlhttp=new XMLHttpRequest();

    }
    else{// IE6, IE5

    1. xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

    }
    //上面的http请求对象的生成做了一个浏览器兼容性处理
    var adminName = document.getElementById(‘adminName’).value;//获取html表单中adminName输入域对象的值,既账号
    var psw = document.getElementById(‘psw’).value;//获取html表单中pwd输入域对象的值,既密码

    xmlhttp.onreadystatechange=function(){
    //当接受到响应时回调该方法

    1. if (xmlhttp.readyState==4 && (xmlhttp.status==200||xmlhttp.status==0))
    2. {
    3. var tip = document.getElementById('tip');//获取html的tip节点,主要用于输出登录结果
    4. var text = xmlhttp.responseText;//使用接口返回内容,响应内容
    5. var resultJson = eval("("+text+")");//把响应内容对象转成javascript对象
    6. var result = resultJson.result;//获取json中的result键对应的值
    7. var code = resultJson.code;//获取json中的code键对应的值
    8. if (result=="fail") {//登录失败
    9. if(code==101){
    10. tip.innerHTML = "密码错误!"
    11. }else if(code==102){
    12. tip.innerHTML = "用户不存在!"
    13. }
    14. }else //登录成功 if(result=="success"&&code==100){
    15. window.location.href="center.html";//跳转到centent.html页面
    16. }
    17. }

    }
    xmlhttp.open(“POST”,”control1/login”,true);//以POST方式请求该接口
    xmlhttp.setRequestHeader(“Content-type”,”application/x-www-form-urlencoded”);//添加Content-type
    xmlhttp.send(“adminName=”+adminName+”&psw=”+psw);//发送请求参数间用&分割

上面的代码中主要实现请求后台登录接口,若登录成功就跳转到用户中心,若登录失败,根据返回的code提示用户登录失败的原因。

  • get方法

    var btn=document.getElementById(“btn”);

    1. btn.=function(){
    2. //1.创建ajax对象(此处兼容性的创建)
    3. var xhr=null;
    4. try{
    5. xhr=new XMLHttpRequest();
    6. }catch(e){
    7. xhr=new ActiveXObject("Microsoft.XMLHTTP");
    8. }
    9. //2.调用open方法----注:xhr.open("方法","路径?数据","是否异步")
    10. xhr.open("get","links/2.get.php?username="+encodeURI('陆小曼')+"&age=18&timp="+new Date().getTime(),true);
    11. //3.发送数据
    12. xhr.send();
    13. //4.请求状态改变事件
    14. xhr.onreadystatechange=function(){
    15. if(xhr.readyState==4){
    16. if(xhr.status==200){
    17. document.write(xhr.responseText)
    18. }else{
    19. alert("错误"+xhr.status)
    20. }
    21. }
    22. }
    23. }

Jquery 实现Ajax

  1. //提交登录信息
  2. btn.on('click',function(e){
  3. e.preventDefault();
  4. var username=$('.login_box #Account').val()
  5. var password=$('.login_box #Password').val()
  6. var param = {'username':username,'password':password;
  7. // console.log("Request param = "+JSON.stringify(param));
  8. $.ajax({
  9. type:"post",
  10. url:'control1/login',
  11. dataType: 'json',
  12. data: JSON.stringify(param),
  13. }).done(function(result){
  14. // console.log("++++" + JSON.stringify(result));
  15. if (result=="fail") {//登录失败
  16. if(code==101){
  17. tip.innerHTML = "密码错误!"
  18. }else if(code==102){
  19. tip.innerHTML = "用户不存在!"
  20. }
  21. }else //登录成功 if(result=="success"&&code==100){
  22. window.location.href="center.html";//跳转到centent.html页面
  23. }
  24. }).fail(function(){
  25. console.log('fail');
  26. });
  27. });
  • $ajax中的内容我们理解,是从指定的URL中返回一些值,这些值以json格式返回。$ajax()如果执行成功,则执行.done()方法,function(e)中的参数e为返回的结果,如果$ajax()执行发生错误,则执行.fail().done()不执行

关于Ajax的相关函数请查阅 JQuery中Ajax官方文档

发表评论

表情:
评论列表 (有 0 条评论,188人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Ajax实现

    原生Ajax的实现 一、查阅开发文档 首先需要了解后台接口,需要提交哪些参数,返回哪些数据。这里我使用了一个返回json格式数据的登录接口为例,讲解怎么使用Ajax