Ajax

Posted crackedlove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax相关的知识,希望对你有一定的参考价值。

一、原生Ajax

  1.什么是Ajax?

  • Ajax的全称是Asynchronous javascript and XML(异步的JavaScript和XML);
  • Ajax能在不刷新整个网页的情况下,请求服务器数据更新局部内容;
  • 能实现局部刷新,大大降低了资源浪费;
  • 传统网页(不使用ajax)如果更新内容,需要刷新整个页面。

 2. 实现步骤:

   (1). 创建XMLHttpRequest对象

let xhr = new XMLHttpRequest();

   (2). 配置请求信息

xhr.open(method,url,async); 

   method:请求方式,GET或POST;

   url:请求地址,例如:https://hello.com/api/pc/coupon/getCouponListByCustIdAndStatus;

   async:是否异步请求,true异步请求(默认),false同步请求。

  (3). 发送请求

  GET:

xhr.send();    //get不传参,参数拼接在url后面

  POST:

xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");   //设置请求头
xhr.send("user=张三&pass=123");  //post需传请求参数

  (4). 监听状态变化,执行相应操作

xhr.onreadystatechange = function(){  //xhr.readyState改变时触发
  if(xhr.readyState === 4 && xhr.status === 200) {
     console.log(xhr.responseText);  //请求成功,作为响应主体被返回的文本
 }
}

  xhr.readyState:保存了xhr自身的状态

    0:请求未初始化

    1:服务器连接已建立

    2:请求已接收

    3:请求处理中

    4:请求完成,且响应已就绪

  xhr.status: 响应的http状态码

二、jQuery中的Ajax  

 jQuery.ajax()参数:

   url:请求地址

   type:请求类型,GET或POST

   dataType:预期服务器返回的数据类型,一般设置为json

   data:一个对象,发送到服务器的数据

   contentType:发送数据到服务器时所使用的内容类型,默认是:"application/x-www-form-urlencoded"。

   cache:默认true,第一次请求完成后,再次请求时,如果参数和url不变,会读取缓存中的数据,不去请求服务器的数据;false,禁用缓存

   success:请求成功后的回调函数

   error:请求失败后的回调函数

   beforesend:请求发送前执行的回调函数

   complete:请求完成时执行的回调函数

$.ajax({
   url:"https://hello.com/coupon/getCouponListByCustIdAndStatus",
   type:"POST",
   cache:false,
   dataType:"json",
   data:{
      username:"张三",
      password:123
   },
   success:function(data){
      console.log(data)
   },
   error:function(){
      console.log("通讯错误,请重试。")
   }
})

 

以上是关于Ajax的主要内容,如果未能解决你的问题,请参考以下文章

Javascript代码片段在drupal中不起作用

前端面试题之手写promise

Ajax 片段元标记 - Googlebot 未读取页面内容

执行AJAX返回HTML片段中的JavaScript脚本

javascript AJAX片段

Spring MVC 3.2 Thymeleaf Ajax 片段