Ajax技术的核心是XMLHttpRequest对象 用于在后台与服务器交换数据
ajax 异步请求 主要用来请求数据
远程地址或者本地地址
传统的web交互是用户触发一个http请求服务器 然后服务器收到之后 做出响应到用户 哪怕是一个很小的交互 都会返回一个完整的HTML页面 而且用户每次都要浪费时间和带宽去重新读取整个页面
ajax是一种用于创建快速动态网页的技术 通过在后天与服务器进行少量数据交换 使页面实现异步更新 这意味着可以在不重新加载整个页面的情况下 对网页的某部分进行更新
同步请求 是等待请求完成之后执行后续代码
异步请求 代码和请求同时执行
1、XMLHttpRequest API(应用程序编程接口)
①abort()停止请求
②getAllResponseHeader()把http请求的所有相应首部作为键值返回
③open(“menthod”,“URL”,[asyncFlag],[“username”],[“password”])建立对服务器的调用 method的参数可以是get(读数据)/post(写数据)/put URL本地/远程路径 其它可选参数 是否异步(T/F) 用户名 密码
④send()向服务器发送请求 参数不写是请求数据 写参数是传输数据
⑤setRequestHeader()
2、如何使用ajax
①实例化对象 var http = new XMLHttpRequest();
②和服务器建立联系 http.open("get")
③发送请求 http.send();
④获取服务器响应的数据 http.onreadstatechange()=function (){};读状态码
⑤读取数据

var http=new XMLHttpRequest();
http.open("get","./list/data.txt");
http.send();
http.onreadystatrchange=function (){/*   console.log(http.readyState);  输出2 3 4 在console为4的时候状态码为200*/if(http.readyState==4&&http.status==200){console.log(http.response);//将会读到txt里面的json数据var data=JSON.parse(http.response);//把数据转换为JavaScript对象console.log(data);}
}

在本地创建一个txt文档 写一个小的json数据

[{"name":"小花";"sex":"男";},{    "name":"小草";"sex":"男";}
]

3、异步

var data=null;
var http=new XMLHttpRequest();
http.open("get","./list/data.txt",true);
http.send();
function showdata(callback){http.onreadystatechange=function(){if(http.readyState==4&&http.status==200){callback(http.response);}}
}
showdata(function (data){console.log(data);//在外部获取异步的数据
})

4、同步 JS单线程 同步会报错

var data=null;
varhttp=new XMLHttpRequest();
http.open("get","./list/data,txt",false);
http.send();
http.onreadystatechange=function(){if(http.readyState==4&&http.status==200){console.log(1);//报错}
}
console.log(2);//输出2

5、ajax封装

function method(res,url,data,callback){var http=new XMLHttpRequest();if(res=="get"){//get方式传值是在路径之后拼接数据if(data){url+="?";url+=data;}http.open(res,url);http.send();}else{http.open(res,url);if(data){http.send(data);//post在send上发送数据}else{http.send();}}http.onreadystatechange=function(){if(http.readyState==4&&http.states==200){callback(http.response);}}
}
method("get","./list/data.txt",null,function(data){console.log(data);
})

6、跨域
协议 主机名 端口 不同在访问数据时就会出现跨域
http(协议)?/stroe.company.com(主机名)/dir2/other.html
①jsonp跨域 也就是src跨域
通过传递回调函数来返回数据
我们打开Apache MySQL环境 创建一个数据表 用PHP连接数据库返回数据
localhost:8080/data.php即可查看PHP返回的数据库数据

var http=new XMLHttpReaquest();
http.open("post","http://localhost:8080/data.php");
http.send();
http.onreadystatechange=function(){if(http.readyState==4&&http.status==200){console.log(JSON.parse(http.response));}
}
//跨域报错

jsonp跨域
在PHP文件中

$callback =$_GET['callback'];
$data=array(...);
echo $callback.'('.json_encode($data).')';
<script src="http://localhost:8080/data.php?callback=dosome"></script>
<script>
function dosome(data){console.log(data);
}
</script>

②CROS跨域 跨域资源共享
配置PHP后台允许跨域<?php header('Access-Control-Allow-Origin:*');*允许所有域名访问
mysql乱码 set names ‘gbk’;
把请求代码写好

var http=new XMLHttpRequest();
http.open("post","http://localhost:8080/data.php");
http.send();
http.onreadystatechange=function(){if(http.readyState==4&&http.status==200){console.log(http.response);}
}

7、调用百度的搜索接口代码

<div><input id="sear" type="text"/></div>
<ul class="menu">
</ul>
<script>
var sear=document.querySelector("#sear");
sear.onkeyup=funciton(){//生成一个script标签var script=document.createElement("script");script.src="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/?wd="+this.value+"&cb=showdata";document.body.appendChild(script);
}
function showdata(data){//console.log(data);for(var i=0;i<data.s.length;i++){var li="<li><a href='https://ww.baidu.com/s?wd="+data.s[i]"'></a></li>";menu.innerHTM+=li;}
}
</script>

JavaScript 阿贾克斯相关推荐

  1. JavaScript中的HTTP GET请求?

    我需要在JavaScript中执行HTTP GET请求. 最好的方法是什么? 我需要在Mac OS X破折号小部件中执行此操作. #1楼 上面有很多很棒的建议,但不是很可重用,并且经常被DOM废话和其 ...

  2. ajax 成功回调函数,jQuery的阿贾克斯成功回调函数定义jQuery的阿贾克斯成功回调函数定义(jQuery ajax...

    我想使用jQuery的ajax从服务器获取数据. 我希望把成功的回调函数定义外面.ajax()块像下面这样. 所以,我需要声明变量dataFromServer像下面这样我就能从成功回调使用返回的数据? ...

  3. 如何使用JavaScript获取客户端的IP地址?

    我需要以某种方式使用JavaScript检索客户端的IP地址: 没有服务器端代码,甚至没有SSI. 但是,我不反对使用免费的第三方脚本/服务. #1楼 在您的页面中包含以下代码: <script ...

  4. javascript复习(更新)

    认识 JS + 什么是 JS? => 在页面内 -> html: 页面结构(表示了你的页面内有什么) -> css: 页面样式(表示了你的页面中每一个内容是什么样子的, 在什么位置) ...

  5. Tabulator 易于使用、功能齐全、交互式表格 JavaScript 库

    Tabulator 跨浏览器支持 Tabulator 支持所有主流浏览器 Tabulator 旨在支持所有现代桌面和移动 Web 浏览器 框架支持 Tabulator 适用于所有 JS 框架,包括: ...

  6. Tabulator javascript data grid数据表格控件v5.1.0 发布说明

    发行说明 编辑器配置 文件导入 阿贾克斯 键绑定 菜单 分页 列 可移动行 排序 格式化 数据树 下载 Bug修复 编辑器配置 一个新的.editorconfig文件已添加到 Tabulator 项目 ...

  7. Ajax(阿贾克斯)基础

    *Ajax是什么? 1.Ajax就是让浏览器跟服务器交互的一套API. 它的作用就是可以让浏览器和服务器进行交互.( 是一种用 于向服务器请求数据的技术 ) 2.MDN官网传送门:Ajax - Web ...

  8. 1.$是什么 2.阿贾克斯是什么,怎么创建和优点

    阿贾克斯是什么,怎么创建和优点 1.AJAX 简介 AJAX(音译为:阿贾克斯) = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),是指一 ...

  9. java 阿贾克斯怎么写_阿贾克斯

    java 阿贾克斯怎么写 杰西·詹姆斯·加勒特(Jesse James Garrett)和Adaptive Path的团队创造了简称" Ajax",意指所有人都在进行的所有酷炫的D ...

最新文章

  1. SpringBoot 概念和起步
  2. 如何用Linux的at命令安排一个任务
  3. count/distinct/group by的用法总结
  4. Forrester发布最新云化数仓象限报告: 阿里云获评“强劲表现者”,排名国内第一
  5. 使用TCP可靠吗?为什么可靠?
  6. 网站 html 中英文切换 - API 总结篇
  7. mongodb使用指南
  8. 基于MSP430F413水果电池供电的低功耗时钟
  9. HDU1249 三角形【切割平面】
  10. 代码整洁之道——9、格式化
  11. python简单代码恶搞-python—做一个恶搞程序
  12. linux 修改文件类型 查看系统类型 改hosts文件
  13. W10笔记本电脑弄成WIFI
  14. 马哥教育开学感想随笔
  15. 记录安装python+appium+模拟器的自动化
  16. java零基础学习第九天
  17. datetime取东八区时间只取到秒,返回为datetime类
  18. Python实现占用栅格地图的生成(Occupancy Grid Generation)
  19. XSS challenges闯关笔记
  20. 虚拟机设置共享文件夹不显示

热门文章

  1. C语言开发 天天酷跑 用到的 graphics.h
  2. 【车牌识别】基于模板匹配实现停车计费系统含Matlab源码
  3. FFmpeg---cmd命令操作汇总
  4. 膜拜,华为内部都在强推的783页大数据处理系统:Hadoop源代码pdf
  5. 1795C Tea Tasting
  6. 一句话描述计算机网络,用恰当的关联词将下面两句话合并成一句话。1.①计算机联网,可以随...
  7. 【Unity3D】回合制游戏
  8. 删除排序链表中重复元素的方法
  9. 任昌华:分享智能建站你做好了吗?
  10. Nginx的临时文件权限问题