Ajax笔记 XHR XMLHttpRequest

时间:2022-09-22 15:20:17

XMLHttpRequest
    xhr    XmlHttpRequest

var request ;
    if(Windows.XMLHttpRequest)
    {    request = new XMLHttpRequest();//IE7 +,Firefox,Chrome,Opera,Safari
    }else{
        request=new ActiveXObject("Microsoft.XMLHTTP");//IE6,IE5
    }

HTTP
    网络通信规则
    无状态协议    不建立持久的连接
    
    请求过程
    1、建立TCP连接
    2、浏览器向服务器发送请求命令
    3、浏览器发送请求头
    4、服务器应答
    5、服务器发送相应命令
    6、服务器向浏览器发送数据
    7、服务器关闭TCP连接

四部分组成:
    1、方法、动作   Get orPOST
    2、Url        请求地址
    3、Header    请求头   客户端环境信息、身份验证
    4、请求体    请求正文   客户提交的查询字段   或表单数据

HTTP响应
    1、数字和文字组成的状态码
    2、响应头    服务器信息  内容长度
    3、相应体    相应正文

响应状态码:
    1XX: 信息类,表示收到浏览器请求,正在进一步处理中
    2XX: 成功,表示用户请求被正确接收
    3XX: 重定向,表示请求没有成功,客户必须采取进一步的动作
    4XX: 客户端错误,表示客户端提交的请求有错误 例:404  请求文档不存在
    5XX: 服务器错误,服务器不能完成对请求的处理

XMLHttpRequest发送请求

open(method,url,async);
        open(GET,Http://baidu.com,True);
    send(string);
        send(name=lala&age=3);

例如:GET
        var request = new XMLHttpRequest();
        request.open("GET","Http://baidu.com",true);
        request.send();

POST
        var request = new XMLHttpRequest();
        request.open("POST","http://baidu.com",true);
        request.setRequestHeader("Content-Type","x-www-form-urlencoded");
        request.send("kw=百度一下");

XMLHttpRequest取得响应
    resposeText:        获取字符串格式的相应数据
    resposeXMl:        获得XML格式的相应数据
    status和statusText    以数字和文本形式返回HTTP状态码
    getAllResposeHeader();    获取所有的响应报头
    getResposeHeader();    查询相应中的某个字段的值
    readyState属性        
        0:未初始化  open未调用
        1:open调用  服务器已建立
        2:服务器已接收    接收到头信息了
        3:请求处理中    接收到相应主体了
        4:请求已完成   响应完成

request.readState;
    request.onreadyStatechange=function(){
        if(request.readyState==4 && request.status ==200){
            do something;
        }
    };

Content-Type:
    text/plain        纯文本
    application/json    Json
    text/xml        XML
    text/html        HTML
    appliaction/javascript    Javascript

Json解析
    var jsondata = '{"s":[{"name":"a"},{"name":"a"},{"name":"a"}]}
    var json = eval('('+jsondata+')');//不判断是否合法  不能屏蔽javascript语句

var json = JSON.parse(jsondata);//校验字符串  屏蔽javascript

JQuery实现Ajax

$.ajax(
        type:"POST|GET",
        url:"http://baidu.com",
        data:{id:id},
        dataType:"json",//预期返回的数据类型
        success:function(data){},请求成功回掉函数,传入返回后的数据
        error:function(data){}//请求失败调用,传入xhr对象
    )

跨域
处理跨域方法一        代理
处理跨域方法二        JSONP
处理跨域方法三        XHR2
    XMLHttpRequest Level2
    IE10以下都不支持
    服务器添加响应头:
        header('Access-Control-Allow-Origin:"*"');//*  所有域名
        header("Acctss-Control-Allow-Methods:POST,GET");

Ajax笔记 XHR XMLHttpRequest的更多相关文章

  1. Jquery笔记和ajax笔记

    Jquery笔记:jQuery是一个JavaScript函数库,专为事件处理设计 1.jQuery的引入 <script text="type/javascript" src ...

  2. JavaScript&colon;学习笔记&lpar;10&rpar;——XMLHttpRequest对象

    JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...

  3. JavaScript封装Ajax工具函数及jQuery中的ajax,xhr在IE的兼容

    封装ajax工具函数 首先要思考:1.为什么要封装它?提高开发效率2.把一些不确定的情况考虑在其中 a. 请求方式 b. 请求地址 c. 是否异步 d. 发送参数 e. 成功处理 f. 失败处理3.确 ...

  4. &dollar;&period;ajax通用格式&amp&semi;&amp&semi;XMLHttpRequest对象属性和方法

    $.ajax({ url: "", type: "POST", async: false, cache:false, //默认true data: {}, da ...

  5. Ajax技术---核心XMLHttpRequest对象

    Ajax 的全称是Asynchronous JavaScript and XML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用的同步的方式. (一)ajax技术的意义 我 ...

  6. 学习笔记 之--AJAX核心对象 XMLHttpRequest

    实现AJAX功能,核心就是XMLHttpRequest,而且现在大多数浏览器都支持这个核心组件对象. 实例:实现无刷新登陆验证 1.前台代码 <html xmlns="http://w ...

  7. script ajax &sol; XHR &sol; XMLHttpRequest

    s 利用XHR 调试发送form data表单数据,F5键刷新form表单URL ,http请求地址,获取token,提交. 如:http://pcp.cns*****.com/spcp-web/vm ...

  8. 弄一个ajax笔记方便查询-&dollar;&period;ajax&lpar;&rpar;

    $.ajax()是所有ajax方法中最底层的方法,所有其他方法都是基于$.ajax()方法的封装.这个方法只有一个参数,传递一个各个功能键值对的对象. $.ajax()方法对象参数表: 参数 类型 说 ...

  9. 弄一个ajax笔记方便查询-基础知识篇

    jQuery对Ajax做了大量的封装,jQuery采用了三层封装: 最底层的封装方法为:$.ajax() 通过最底层进一步封装了第二层的三种方法:.load().$.get().$.post() 最高 ...

随机推荐

  1. Entity Framework 6 Recipes 2nd Edition(11-2)译 -&gt&semi; 用”模型定义”函数过滤实体集

    11-2. 用”模型定义”函数过滤实体集 问题 想要创建一个”模型定义”函数来过滤一个实体集 解决方案 假设我们已有一个客户(Customer)和票据Invoice)模型,如Figure 11-2所示 ...

  2. About&lowbar;PHP读写文件

    1.PHP部分文件操作函数:fopen ,fread ,filesize,fwrite,fclose 2.unlink() rmdir() 删除函数 unlink() 删除文件函数:unlink(路径 ...

  3. microstrip patch antenna

    微带天线有很多优点,低成本,易于集成,加工简单,缺点有:效率低.功率容易低.高Q值 ,可能存在表面波,极化效果差,弱电扫性能.带宽窄.微带线的金属厚度t远远小于波长(t << λ0 ,* ...

  4. 初次使用并安装express

    安装 Nodejs 去Nodejs官网根据自己的操作系统下载对应的安装包并安装.我们就有了NodeJS和npm环境.npm是Node的包管理工具,会在安装NodeJS时一并安装.可以用以下命令查看版本 ...

  5. 第二周:If判断语句程序当中的作用简介

    1.If语句的作用: 在我们编写程序时经常会遇到内容判断的问题,比如判断内容的真假或者值的大小分别输出内容的问题 这时就会用到我们的If判断语句了,顾名思义,if在英文单词中意思为如果,在Java中他 ...

  6. 无废话ExtJs 入门教程十六&lbrack;页面布局:Layout&rsqb;

    无废话ExtJs 入门教程十六[页面布局:Layout] extjs技术交流,欢迎加群(201926085) 首先解释什么是布局: 来自百度词典的官方解释:◎ 布局 bùjú: [distributi ...

  7. Selenium RC 环境搭建(eclipse)

    环境搭建参考:http://seleniumcn.cn/read.php?tid=7962  非常详细!晕乎晕乎了两天,看到这边帖子,终于搭起来了. 关于Selenium RC的原理,还是Seleni ...

  8. C&num; 计算字符串&sol;文件的哈希值(MD5、SHA)

    原文 C# 计算字符串的哈希值(MD5.SHA) 已做修改 一.关于本文 本文中是一个类库,包括下面几个函数: /// 1)计算32位MD5码(大小写):Hash_MD5_32 /// 2)计算16位 ...

  9. Mysql锁机制--行锁

    Mysql 系列文章主页 =============== 1 准备数据 1.1 建表 DROP TABLE IF EXISTS employee; CREATE TABLE IF NOT EXISTS ...

  10. java&period;sql&period;SQLException&colon; Incorrect string value&colon; &&num;39&semi;&bsol;xE5&bsol;xBC&bsol;xA0&bsol;xE9&bsol;x9B&bsol;xB7&&num;39&semi; for column &&num;39&semi;content&&num;39&semi; at row 1

    这个问题主要是由于该字段及腹肌编码不正确导致的,一般新建的表如果没设置就会是latin1字符集需要将表改为utf8字符集,再将报错的列的字符集改为utf8即可,修改命令如下所示: ALTER TABL ...