本文介绍: Ajax即Asynchronous Javascript And XML(异步JavaScript和XML) 使用Ajax技术网页应用能够快速地将增量更新呈现用户界面上,而不需要重载(刷新)整个页面情况下,能够更新部分网页技术同步异步同步互交:指向服务器发送一个请求,需要等待返回,然后才能够发送一个请求,期间有个等待过程异步互交:指向服务器发送一个请求,不需要等待返回,随时可以发送下一个请求,即不需要等待;

使用ajax发送异步请求

原生js实现以及jquery ajax实现发送请求



简介

Ajax即Asynchronous Javascript And XML(异步JavaScript和XML) 使用Ajax技术网页应用能够快速地将增量更新呈现用户界面上,而不需要重载(刷新)整个页面情况下,能够更新部分网页的技术


同步异步

实现方式

1.原生js实现

1.get请求

代码如下(示例):

// 创建请求对象
var xhr = new XMLHttpRequest()

// 封装参数对象
var data = {id: 1,name: "张三"}

// 配置请求方法设置请求接口地址
//同步异步请求:true(异步)或 false同步
xhr.open('get', 'http://localhost:8080/api?' + JSON.stringify(data),true)

//发送请求
xhr.send()

// 获取网络请求响应数据
xhr.onreadystatechange = function () {
 // 响应完毕,并且请求成功
  if (xhr.readyState === 4 && request.status === 200) {
          var res = JSON.parse(xhr.responseText)
          //.....
        }
      }

2.post请求

代码如下(示例):

// 1.创建一个实例对象
  var xhr = new XMLHttpRequest()
 
  // 需要传递的数据
  var data = {id: 1,name: '张三'}
  
   // 2.打开一个连接
   //同步或异步请求:true(异步)或 false同步
  xhr.open('post', 'http://localhost:8080/api',true);
  
  // 设置请求头 告诉后端我们要发送的是什么格式数据
  xhr.setRequestHeader('Content-Type', 'application/json')
  
  // 3.发送请求
  // 发送json数据
  xhr.send(JSON.stringify(obj))
  
  // 4.接收响应
  xhr.onreadystatechange = function () {
    // 请求发送完成 请求成功
    if (xhr.readyState === 4 && xhr.status === 200) {
      var res = JSON.parse(xhr.responseText)
      console.log(res);
      //。。。。。
    }
  }
}

2.jquery ajax实现

jquery地址

1.基本方式

代码如下(示例):

$.ajax({
         //缓存
		 cache: false,
		 //是否异步请求
         async: async == undefined ? true : async,
         //请求地址
         url: 'http://localhost:8080',
         //请求类型
         type: method == undefined ? "POST" : method,
         contentType: contentType == undefined ? 'application/json; charset=UTF-8': contentType ,
         // 设置的是请求参数
         data: {id: 1,name: '张三'},
         //设置响应体的类型
         dataType: 'json', 
         //回调函数
         success: function (res) {
             // 设置了 dataType 选项客户端会主观认为服务端返回的就是 JSON 格式的字符串
             console.log(res);
         }
     });

2.回调事件

代码如下(示例):

$.ajax({
         //缓存
		 cache: false,
		 //是否异步请求
         async: async == undefined ? true : async,
         //请求地址
         url: 'http://localhost:8080',
         //请求类型
         type: method == undefined ? "POST" : method,
         contentType: contentType == undefined ? 'application/json; charset=UTF-8': contentType ,
         // 设置的是请求参数
         data: {id: 1,name: '张三'},
         //设置响应体的类型
         dataType: 'json', 
         // 在所有发送请求的操作open, send)之前执行
         beforeSend: function (request) {       
		 		request.setRequestHeader("Authorization", CoreUtil.getData("token"));
		 },
		 // 请求成功(状态码为200)执行这个函数
         success: function (res) {
                console.log(res);
            },
            // 请求不正常(状态码不为200)执行
          error: function (res) {
                console.log('error', res);
            },
             // 不管是成功还是失败都是完成,都会执行这个 complete 函数(一般成功与失败都需要执行操作写在这里)
          complete: function (res) {
                console.log('complete', res);
            }

3. jquery中的封装函数

1.$.post

语法:$.post(url,data,function(data,status,xhr),dataType);

代码如下(示例):

 $.post("http://localhost:8080/api",data,function(res){
    if(res.success){
      alert("成功");
    }else{
      alert("失败");
    }
  },"json");

2.$.get

语法:$.get(url,data,function(data,status,xhr),dataType)

代码如下(示例):

 $.get("http://localhost:8080/api",data,function(res,status){
        if(res.success){
      alert("成功");
    }else{
      alert("失败");
    }
    },"json");

3.$.getJSON

描述:发送get请求,并将数据转为json数据
语法:$.getJSON(url,data,function(data,status,xhr))

代码如下(示例):

$.getJSON('http://localhost:8080/api', data, function (res) {
           alert(res)
        });

4.$.getScript

描述执行一个js文件的代码
语法:$.getScript(url, [callback])

代码如下(示例):

//url:待载入 JS 文件地址。
//callback:成功载入后回调函数
$.getScript("ajax.js", function (data, Status, xhr) { 
             alert("加载成功");
        });

总结

以上就是今天要讲的内容本文介绍ajax使用方式以及jquery的一些封装函数,希望对大家有帮助。公众号 “俊俊同学笔记

原文地址:https://blog.csdn.net/weixin_46721191/article/details/130382998

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_9961.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注