ajax 请求与响应,实例解读ajax发送请求与数据响应
Ajax
前后端数据交互——通过在后台与服务器的少量数据交换,实现页面异步(局部)更新。
异步 -> XMLHttpRequest
后台 服务器
适应网址:
var request;
if(window.XMLHttpRequest){
request=new XMLHttpRequest(); //IE7+、Firefox、Chrome...
}else{
request=new ActiveXObject("Mierosoft.XMLHttp"); //IE5、6
}
当然,也可以通过try-catch异常处理机制(看下面四步操作中第一步讲解)完成。
HTTP请求
get:| 信息获取
:| URL传递参数
这种方式 快 ,但对发送信息数量有限制。
post:| 修改服务器资源 —— 安全
用XMLHttpRequest发送请求
open(method,url,sync); //发送请求方法、请求地址(从哪里获得数据)、同步/异步
send(string); //发送 没有数据时(从后端读取数据)string应写为null——兼容火狐
如:
request.open("GET","get.php",true); //true代表异步操作
request.send(null);
ajax发送异步请求的四步操作
第一步(得到XMLHttpRequest)
1.得到XMLHttpRequest
大多数浏览器都支持:var xmlHttp=new XMLHttpRequest();
IE6.0:var xmlHttp=new ActiveXObject(“Msxml2.XMLHTTP”);
IE5.0以更早版本的IE:var xmlHttp=new ActiveXObject(“Microsoft.XMLHTTP”);
2.编写创建XMLHttpRequest对象的函数 —— 兼容浏览器
function createXMLHttpRequest(){
try{
return new XMLHttpRequest();
} catch(e){
try{
return new ActiveXObject(“Msxml2.XMLHTTP”);
}catch(e){
try{
return new ActiveXObject(“Microsoft.XMLHTTP”);
}catch(e){
alert(“哥们儿,你用的是什么浏览器啊?”);
throw e;
}
}
}
}
第二步(打开与服务器的连接)
xmlHttp.open():用来打开与服务器的连接,它需要三个参数:
请求方式:可以是GET与POST
请求的URL:指定服务器端资源,例如:/day23_1/AServlet
请求是否为异步:如果为true表示发送异步请求,否则同步请求
第三步(发送请求)——send()
第四步
在xmlHttp对象的一个事件上注册监听器:onreadystatechange
xmlHttp对象一共有5个状态
0:初始化未完成状态,只是创建了XMLHttpRequest对象,还未调用open()方法
1:请求已开始,open()方法已调用,但还没调用send()方法
2:请求发送完成状态,send()方法已调用
3:开始读取服务器响应
4:读取服务器响应结束(通常我们只关心最后这个状态!!!)
xmlHttp.onreadystatechange = function(){//xmlHttp的5种状态都会调用本方法
if(xmlHttp.readyState ==4 && xmlHttp.status == 200){//双重判断:判断是否为4状态,而且还要判断是否为200
var text=xmlHttp.responseText;
}
};
案例——ajax读取“Hello world”
服务器端代码:
public class AServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Hello world!");
response.getWriter().print("Hello world");
}
}
页面代码:
Ajax 数据交互
点击这里,有惊喜!
function createXMLHttpRequest() {
try{
return new XMLHttpRequest(); // 绝大多数浏览器
}catch (e) {
try{
return ActiveXObject("Msxml2.XMLHTTP"); // IE6.0
}catch (e) {
try{
return ActiveXObject("Microsoft.XMLHTTP"); // IE5.5及更早版本
}catch (e) {
alert("哥们儿,你这浏览器,,,不行啊!");
throw e;
}
}
}
}
window.οnlοad=function () {
var btn=document.getElementById("btn"),
h1=document.getElementById("h1"),
text;
btn.οnclick=function () {
// var xmlHttp;
// if(window.XMLHttpRequest){
// xmlHttp=new XMLHttpRequest();
// }else{
// xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
// }
var xmlHttp=createXMLHttpRequest(); //这一步和上面被注释的几行本质上是一个东西
xmlHttp.open("GET","/文件操作/AServlet",true);
xmlHttp.send(null); //这是什么取决于get / post
//xmlHttp.send(处理了的post数据);
xmlHttp.onreadystatechange=function () {
if(xmlHttp.readyState===4 && xmlHttp.status===200){
text=xmlHttp.responseText; //得到服务器响应的文本格式的内容(更通用)——var text=XMLHttp.responseXML; //得到服务器响应的xml内容,这就是document对象了
h1.innerHTML=text;
}
}
}
}
最后,再放上jQuery中ajax发送请求数据的案例:
本文同步分享在 博客“行舟客”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
ajax 请求与响应,实例解读ajax发送请求与数据响应相关推荐
- 【AJAX 笔记】AJAX 基本、HTTP 基本、原生 AJAX 的使用,jQuery / Axios / fetch 发送请求、跨域(JSONP/CORS)
文章目录 1 Ajax 概述 1.1 AJAX 简介 1.2 XML 简介 1.3 AJAX 的特点 1.3.1 AJAX 的优点 1.3.2 AJAX 的缺点 1.4 AJAX 属性和方法 2. H ...
- angular ajax get post 参数,AngularJS - $ http.post发送请求参数而不是JSON的任何方式?...
AngularJS - $ http.post发送请求参数而不是JSON的任何方式? 我有一些旧的代码通过jQuery的post方法发出一个AJAX POST请求,看起来像这样:$.post(&quo ...
- python实现http请求并发_Python使用grequests并发发送请求
前言 requests是Python发送接口请求非常好用的一个三方库,由K神编写,简单,方便上手快.但是requests发送请求是串行的,即阻塞的.发送完一条请求才能发送另一条请求. 为了提升测试效率 ...
- tp监控连接云路由服务器失败_TP ID提示发送请求失败怎么办?TP-Link ID发送请求失败现象的原因及解决方案...
有时候在创建.登录.注销TP-LINK ID,或者在找回TP-LINK ID的密码.在线升级.刷新精选应用等与云服务有关操作时,路由器或APP界面可能提示"TP-Link ID发送请求失败, ...
- ajax请求返回json实例,Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
一.AjaxJson.aspx 处理业务数据,产生JSon数据,供JqueryRequest.aspx调用,代码如下: protected void Page_Load(object sender, ...
- ajax 上传文件实例,jquery ajax实现文件上传功能实例代码
下面看下ajax实现文件上传 没有使用插件 一.单文件上传 文件: 上传文件 $(function () { $("#upload").click(function () { va ...
- html action get post请求参数乱码,input type=text 发送请求参数,中文乱码问题
1.不废话,直接代码如下: teacher.jsp pageEncoding="UTF-8"%> 教师管理页面 课程资源目录: --------------- 作业提交目录: ...
- $.ajax 发送请求,JavaScript之Ajax-2 Ajax(使用Ajax发送get请求、使用Ajax发送post请求)
一.使用Ajax发送get请求 发送异步请求的步骤 - 获取Ajax对象:获取 XMLHttpRequest对象实例 - 创建请求:调用XMLHTTPRequest对象的open方法 - 设置回调函数 ...
- Ajax学习系列——向服务器发送请求
1.如何发送请求? 如果需要向服务器发送请求,我们使用的是XMLHttpRequest对象中的open()和send()方法. var xhr = new XMLHttpRequest();//具体创 ...
- ajax 在IE9浏览器下不发送请求的解决方法
ajax.form,在ie9下拒绝发送请求. 从网上找了好多资料,大部分都是以下方法: 针对 拒绝访问 是由于浏览器安全机制导致的,解决方法为点击IE浏览器的的"工具->Interne ...
最新文章
- svn教程----TortoiseSVN客户端
- SCVMM 2012 R2运维管理十三之:将资源添加到VMM库
- SAP 电商云 Spartacus UI Quick Order 延迟加载的现象分析
- ASP.NET性能优化小结(ASP.NETC#)(转)
- 企业会计准则2020版pdf_2020年下半年CATTI三级笔译中译英真题+参考答案+原文件汉英对照PDF版...
- 知识点:计算机网络的 89 个核心概念
- 如何用计算机处理图片,使用附带软件编辑照片 利用Digital Photo Professional 用电脑处理RAW图像...
- Unity如何查看当前内存使用情况
- 阿里高效沟通的秘密:向上沟通,跨部门沟通,PREP汇报...这5招绝了!
- 加号和减号在一起怎么读_数学符号里的“加减”是“±”,那么“减加”怎么打?求高手!!!!!!!!! word中加号和减号放在一起怎么打出来?...
- 量表:现代医学体系的“工具箱”
- 深度神经网络分析,神经网络 炒股
- 怎样修改图片的大小和格式
- 高僧斗法--Staircase Nim
- vue提示Named Route ‘News‘ has a default child route. When navigating to this named route...问题
- 线性回归算法在 java 中是如何实现的?
- windows 程序员装机必备软件
- 自定义ro.build.fingerprint
- 百度超级链开放网络治理监督藏品火爆售罄!
- TYVJ P1092 麻将
热门文章
- easyexcel导入固定sheet_springboot批量导入excel数据
- Java编程:排序算法——选择排序
- excel生成多个sheet .net
- C++_Hash容器总结
- 论文笔记_S2D.59_2015-ICRA_V-LOAM_低漂移、鲁棒和快速的视觉-激光 里程计和建图
- Java:对于Borderlayout布局管理的理解
- C++调用编译好的darknet来进行物体监测
- 补充其他数字类型 (了解)
- opensuse安装Tomcat碰到的问题
- Android 编程下 Using ViewPager for Screen Slides