let xmlHttp = new XMLHttpRequest();//创建发送请求的对象
    //这是为了兼容IE的获取ajac请求对象的方法
    // let getXmlHttpRequest = function () {
    //     if (window.XMLHttpRequest) {
    //         //主流浏览器提供了XMLHttpRequest对象
    //         return new XMLHttpRequest();
    //     }
    //     else if (window.ActiveXObject) {
    //         //低版本的IE浏览器没有提供XMLHttpRequest对象
    //         //所以必须使用IE浏览器的特定实现ActiveXObject
    //         return new ActiveXObject("Microsoft.XMLHTTP");
    //     }
    // };
    xmlHttp.open('GET','https://www.baidu.com');//设置请求的地址和方法
    xmlHttp.send();//发送请求
    //xmlHttp请求的状态有五种0,1,2,3,4。所以这个状态改变的回调函数会执行四次,即0变为1、1变为2、2变为3、3变为4
    //当var xmlHttp = new XMLHttpRequest();这句执行完后,xmlHttp.readyState为0,表示对象存在
    //调用open方法根据参数完成对象设置,并调用send方法发送请求,这时候xmlHttp.readyState为1,表示正在向服务端发送请求
    //当send方法执行完成后,接收完全部的返回数据,xmlHttp.readyState为2
    //接收完数据后进行解析,根据服务器端响应头部返回的MIME类型把数据转换成能通过responseBody、responseText或responseXML属性存取的格式,这时候xmlHttp.readyState为3
    //响应内容解析完成,可以在客户端调用了,xmlHttp.readyState为4
    xmlHttp.onreadystatechange=()=>{//当请求的状态发生改变的时候调用回调函数
        //我们只看请求完成后的情况,因为就算请求失败了,它最终的状态也会变为4,比如请求一个不存在的网页
        if(xmlHttp.readyState==4){
            console.log('请求流程执行完了...');
            //console.log(xmlHttp.status);
            //请求的过程走完之后我们还需要通过判断请求的状态码xmlHttp.status来看请求是否成功,常用的状态码和含义
            //200:请求成功(后台处理结果ok)、303:重定向
            //400:请求错误、401:未授权、403:禁止访问、404:文件未找到
            //500:服务器错误
            if(xmlHttp.status==200){
                let response = xmlHttp.responseText;//获取响应的内容,以文本的方式
                console.log('请求成功');
            }else{
                console.log(`请求失败:${xmlHttp.status}`);
            }
        }
    };

JSAJAX请求的更多相关文章

  1. Zepto.js-Ajax 请求

    Ajax 请求 执行Ajax请求.它可以是本地资源,或者通过支持HTTP access control的浏览器 或者通过 JSONP来实现跨域. 引入Ajax模块 <script src=&qu ...

  2. js--Ajax的小知识(二):处理ajax的session过期的请求

    问题的产生: 现如今Ajax在Web项目中应用广泛,几乎可以说无处不在. 有时会碰到这样个问题:当Ajax请求遇到Session超时,应该怎么办? 显而易见,传统的页面跳转在此已经不适用,因为Ajax ...

  3. python——django的post请求

    两次被同一块石头绊倒简直不可原谅!第一次写django程序的时候,就因为ajax post请求折腾了整整一天,时隔两个多月昨天又被虐一整晚.叔可忍婶儿也不能忍了!!!重要的事情写下来,为以后轻松碾压p ...

  4. jquery和原生js-ajax

    form表单 $('#submit').click(function(){ $('#form').serialize(); //会根据input里面的name,把数据序列化成字符串:eg:name=y ...

  5. Angular2入门系列教程7-HTTP(一)-使用Angular2自带的http进行网络请求

    上一篇:Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数 感觉这篇不是很好写,因为涉及到网络请求,如果采用真实的网络请求,这个例子大家拿到手估计还要自己写一个web ...

  6. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  7. 重温Http协议--请求报文和响应报文

    http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...

  8. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

    背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...

  9. nodejs之get/post请求的几种方式

    最近一段时间在学习前端向服务器发送数据和请求数据,下面总结了一下向服务器发送请求用get和post的几种不同请求方式: 1.用form表单的方法:(1)get方法 前端代码: <form act ...

随机推荐

  1. 问题解决:局域网内,为啥别人ping不到我的IP

    试着在本地搭建一个测试环境,成功后却发现同一局域网的同事根本访问不了,他们ping不到我的IP,这可咋整! 询问度娘后,我的问题得到了,以下是我的总结,如果解决不了你的问题,还请继续百度. 方法一:关 ...

  2. SVN merge(合并) 时看不到以前的已经合并过的记录的标识

    今天遇到这么一个事情,merge的时候以前merge过的提交记录,咩有已合并过的标识了,就是下面这样的尾巴分叉向下的箭头 通常出现这样的情况,都是工程路径不对,检查了一下,没有问题,这些meng B ...

  3. eclipse的安装和环境配置

    一,eclipse下载 地址:https://www.eclipse.org/downloads/ 一般浏览器都有翻译功能 二.有32位和64位的版本根据自己的需求下载,选下载的选下载量最多的下载. ...

  4. Go_go build 和 go install

    1.作用 go build:用于测试编译包,在项目目录下生成可执行文件(有main包). go install:主要用来生成库和工具.一是编译包文件(无main包),将编译后的包文件放到 pkg 目录 ...

  5. python3练习100题——011

    原题链接:http://www.runoob.com/python/python-exercise-example11.html 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔 ...

  6. 根下var目录迁移

    问题 var目录挂载在根目录下,占用/分区的空间,如果/var/log日志空间过大,将导致/分区空间满,导致系统无法使用. 解决方案 在硬盘上划分单独的分区,挂载到/var目录,并迁移/var目录下的 ...

  7. IntelliJ IDEA 2017.3尚硅谷-----创建动态的 Java Web

  8. yii2 场景使用

    场景定义 //场景 const SCENARIO_USER_CREATE='0';//前台用户新增 const SCENARIO_USER_UPDATE='1';//前台用户更新 场景配置 publi ...

  9. C++-POJ3274-Gold Balanced Lineup[hash]

    不是很懂? 胡乱hash #include <set> #include <map> #include <cmath> #include <queue> ...

  10. .net core 2.2 使用imagemagick 将pdf转化为png

    工作需要将PDF文件每一页拆分为一个一个的png文件 测试环境:mac,visual studio for mac 2019 nuget:magick.net-Q16-AnyCPU 不能直接支持PDF ...