面向对象之ajax
1.Ajax发送请求的几个步骤
1. 创建 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
//IE6 使用
var xhr= new ActiveXObject('Microsoft.XMLHTTP');2. 准备发送
xhr.open('get','./check.php',true);
3. 执行发送动作
xhr.send(null);
4. 指定回调函数
xhr.onreadystatechange=function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
var data=xhr.responseText;
}
}
}
分析:
/*
* 参数一 :请求方式(get获取数据,post提交数据)
* 参数二 :请求地址
* 参数三 :同步或者异步标志位,默认是ture表示异步,false表示同步
*/
get请求
如果是get请求那么请求参数必须在url中传递
encodeURI()用来对中文参数进行编码,防止乱码
----------------
var param = 'username='+uname+'&password='+pw;
xhr.open('get','03get.php?'+encodeURI(param),true);
------------------
xhr.open('get','./check.php',true);
post请求
--------------------
var param = 'username='+uname+'&password='+pw;
xhr.open('post','04post.php',false);
// 3、执行发送动作
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(param);//post请求参数在这里传递,并且不需要转码
--------------------
2.服务器返回相应数据的两种格式
responseXMl
<booklist>
<book>
<name><?php echo $arr[0]['name'] ?></name>
<author><?php echo $arr[0]['author'] ?></author>
<desc><?php echo $arr[0]['desc'] ?></desc>
</book>
</booklist>注意:使用xml传输数据时候需要使用
header("Content-Type:text/xml;");
responseText
21.什么叫元数据
描述数据的数据,叫做元数据
json数据格式:
{
"name":"zhansan",
"age" :12,
"hobby":["coding","swimming","singing"],
"firend":{
"high":"180cm",
"weight":"80kg"
}
}
原生ajax的封装
function ajax(url,type,param,dataType,callback){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
if(type == 'get'){
url += "?" + param;
}
xhr.open(type,url,true);
var data = null;
if(type == 'post'){
data = param;
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
}
xhr.send(data);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
var data = xhr.responseText;
if(dataType == 'json'){
data = JSON.parse(data);
}
callback(data);
}
}
}
}
面向对象之ajax的更多相关文章
- javascript 高级程序设计 学习笔记
<!--<script> // 异步请求封装 IE6即以上浏览器 // ajax(url,fnSucc,selectID,fnFaild) //url 请求地址 //fnSucc 异 ...
- sass基础学习(一)
移动端布局各种问题 pc端布局各种问题sass 组件模块化面向对象编程ajax 框架学习 webpack 打包 性能优化 gulp是基于Nodejs的自动任务运行器她能自动化地完成 javascrip ...
- 《松本行弘的程序世界》读书笔记(上)——面向对象、程序块、设计模式、ajax
1. 前言 半个月之前买了这本书,还是经园子里的一位网友推荐的.到现在看了一半多,基础的都看完了,剩下的几章可做高级部分来看.这本书看到现在,可以说感触很深,必须做一次读书笔记! 关于这本书,不了解的 ...
- ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET MVC 学习笔记-6.异步控制器 ASP.NET MVC 学习笔记-5.Controller与View的数据传递 ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用 ASP.NET MVC 学习笔记-3.面向对象设计原则
ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...
- js 实现对ajax请求面向对象的封装
AJAX 是一种用于创建高速动态网页的技术.通过在后台与server进行少量数据交换.AJAX 能够使网页实现异步更新.这意味着能够在不又一次载入整个网页的情况下,对网页的某部分进行 ...
- ajax请求下拉列表框的实现(面向对象封装类)
实现的效果图 <?php class Car{ private $carColor; private $carType; public function __construct($carColo ...
- 面向对象,继承,浏览器,上传文件, ajax
'use strict'; //父类 class Student2{ constructor(name){ this.name = name || 'tom'; } hello(){ console. ...
- 编写轻量ajax组件03-实现(附源码)
前言 通过前两篇的介绍,我们知道要执行页面对象的方法,核心就是反射,是从请求获取参数并执行指定方法的过程.实际上这和asp.net mvc框架的核心思想很类似,它会解析url,从中获取controll ...
- 先定一个小目标,自己封装个ajax
你是否发现项目中有很多页面只用到了框架不到十分之一的内容,还引了压缩后还有70多kb的jquery库 你是否发现项目中就用了两三个underscore提供的方法,其他大部分的你方法你甚至从来没有看过 ...
随机推荐
- 【Git】二、安装配置
一.Git安装 Linux $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev $ ap ...
- idea git 操作
工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有两个人,组长小张,组员小袁 场景一:小张创建项目并提交到远程Git仓库 场景二:小袁从远程Git仓库上获取项目源码 场景三:小 ...
- 电话号码的字母组合 · Letter Combinations of a Phone Number
[抄题]: Given a digit string excluded 01, return all possible letter combinations that the number coul ...
- Golang之反射(重点!!)
1.反射:可以在运行时动态获取变量的相关信息 Import(“reflect”) 两个函数: reflect.TypeOf()//获取变量的类型,返回reflect.Type类型reflect.Val ...
- Java 设计模式系列(十一)享元模式
Java 设计模式系列(十一)享元模式 Flyweight 享元模式是对象的结构模式.享元模式以共享的方式高效地支持大量的细粒度对象. 一.享元模式的结构 享元模式采用一个共享来避免大量拥有相同内容对 ...
- IntelliJ IDEA 2017版开发SpringBoot之fastJsonHttpMessageConvert使用
继承WebMvcConfigurerAdapter,改写成自己的json转换工具的写法 1.建立实体类 package com.fastjson; import com.alibaba.fastjso ...
- 百度地图 Javascript API 笔记
因为最近的一个项目用到,所以自己整理了一下遇到的一些坑 自己写了一个类库来二次封装用于调起常用的功能:https://github.com/iRuxu/iBMap 快速文档链接 Javascript ...
- UILabel 字体下方加下划线
UILabel *knowKankan = [[UILabel alloc] initWithFrame:CGRectMake(0, MAINHEIGHT - 78 , MAINWIDTH, ...
- Android-SqliteSQL语句大全
SqliteSQL语句大全 创表语句: create table student_table(_id integer primary key autoincrement, name text, age ...
- 结巴net 分词 配置文件路径,在网站中的出现问题的解决
用结巴分词net版,部署到网站上的时候,配置文件的地址为相对路径的时候会出现问题,绝对路径就没有问题. 原因是结巴源码中,取路径是取的应用程序的目录.如果是winform程序当然没有问题,在网站就不行 ...