美文网首页
ajax基础

ajax基础

作者: 废柴阿W | 来源:发表于2018-10-25 09:50 被阅读0次

基本格式

//1、创建XMLHttpRequest这个对象,这个步骤中需要注意兼容处理
    var xhr = new XMLHttpRequest()
    //var xhr;
  if(window.XMLHttpRequest){
      xhr = new XMLHttpRequest();
  }else{
      xhr = new ActiveXObject('Microsoft.XMLHTTP');
  }

//2、准备发送
      xhr.open("post","checkUsername.php",true);
     //xhr.open("get","checkUsername.php?username=" + username,true);
    //xhr.send(null);
//3、执行发送
    var param = "username=" + username;
//对于post请求来说的话,我们的参数应该放到请求体中
//设置xhr的请求头信息,这个步骤仅仅是针对于post请求才有的
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xhr.send(param);
//4、设置回调函数
    xhr.onreadystatechange = function(){
        if(xhr.readyState == 4) {
            if(xhr.status == 200) {
                //得到数据
                    //xhr.responseXML
                      var result = xhr.responseText;
                    console.log(result);
                    document.getElementById("result").innerText = result;
                        }
                    }
                    
                }
  • get 发送数据在 xhr.open('post','testlog.php?name='+this.value);

  • post 发送数据在 xhr.send()中;
    格式:

//设置请求行
xhr.open("post", "url", true);
//设置请求头
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send('name=xxx&name2=xxx');

  • 发送ajax请求时,如果参数是a=1&b=2格式,发送的是Form Data,此时contentType是application/x-www-form-urlencoded。
  • 如果参数是字符串(json),那么发送的是Request payload,contentType是application/json。
    发送的参数决定是form data还是request payload。contentType和参数不一致,则以参数为准。

Form Data

JSON

发送了一个post请求,在后台$_POST都获取不到数据时,
.研究完参数 发现参数是通过payload方式传递的
$request_body = file_get_contents('php://input');
$data = json_decode($request_body, true);
[图片上传中...(image.png-f68158-1540477724012-0)]

readyState属性

同步异步

一定在发送请求 send() 之前注册 readystatechange (不管同步或者异步)
为了让这个事件可以更加可靠(一定触发),一定是先注册,否则事件里的函数不会执行

超时

XHR对象的timeout属性等于一个整数,表示多少毫秒后,如果请求仍然没有得到结果,就会自动终止。该属性默认等于0,表示没有时间限制
  如果请求超时,将触发ontimeout事件
  [注意]IE8-浏览器不支持该属性

xhr.open('post','test.php',true);
xhr.ontimeout = function(){
    console.log('The request timed out.');
}
xhr.timeout = 1000;
xhr.send();

相关文章

  • face14ajax基础内容

    ajax基础内容 ajax技术利用了 什么协议?简述ajax的工作机制 写出jquery中,可以处理ajax的几种...

  • AJAX简易封装(四步)

    最基础的ajax封装如下:

  • ajax配置信息

    基础的ajax配置信息

  • 2019-02-14day9学习总结

    修改标签的层次 Ajax基础

  • AJAX基础及原理

    AJAX基础知识 什么是AJAX?async javascript and xml, 异步的JS和XML XML:...

  • Web前端-Ajax基础技术(下)

    Web前端-Ajax基础技术(下) 你要明白ajax是什么,怎么使用? ajax,web程序是将信息放入公共的服务...

  • 前端基础搬运工-Ajax模块

    七、Ajax模块 基础部分 1. ajax是什么? - [ ] Ajax并不算是一种新的技术,全称是asychr...

  • AJax基础

    什么是Ajax Ajax是用JavaScript执行异步网络请求,请求是异步执行的,也就是说,要通过回调函数获得响...

  • ajax基础

    基本格式 get 发送数据在 xhr.open('post','testlog.php?name='+this.v...

  • ajax基础

    概述 Asynchronous JavaScript and XML,异步传输无刷新技术。提高用户体验的技术。“异...

网友评论

      本文标题:ajax基础

      本文链接:https://www.haomeiwen.com/subject/evhqtqtx.html