ajax请求的原生js实现

我们使用ajax请求一般都用的jQuery, axios封装好了的api, 那么如果只能用原生js, 我们该如何操作了? 上代码.

我们在同目录下写好一个json文件(data.json)用于请求测试

 1 const ajax = function() {
 2   var ajaxData = {
 3     type: arguments[0].type || ‘GET‘,
 4     url: arguments[0].url,
 5     async: arguments[0].async || true,
 6     data: arguments[0].data|| null,
 7     dataType: arguments[0].dataType || ‘json‘,
 8     contentType: arguments[0].contentType || ‘application/x-www-form-urlencoded‘,
 9     beforeSend: arguments[0].beforeSend || function(){},
10     success: arguments[0].success || function(){},
11     error: arguments[0].error || function(){}
12   }
13   // 执行发起请求前要执行的操作
14   ajaxData.beforeSend();
15
16   var xhr = createxmlHttpRequest();
17   xhr.responseType = ajaxData.dataType;
18   // 建立连接
19   xhr.open(ajaxData.type, ajaxData.url, ajaxData.async);
20   xhr.setRequestHeader(‘Content-Type‘, ajaxData.contentType);
21   // 发送请求
22   xhr.send(convertData(ajaxData.data));
23   xhr.onreadystatechange = function() {
24     if (xhr.readyState == 4) {
25       if (xhr.status == 200) {
26         ajaxData.success(xhr.response)
27       } else {
28         ajaxData.error()
29       }
30     }
31   }
32
33   // 创建xhr对象, 兼容IE6
34   function createxmlHttpRequest() {
35     if (window.ActiveXObject) {
36       return new ActiveXObject("Microsoft.XMLHTTP");
37     } else if (window.XMLHttpRequest) {
38       return new XMLHttpRequest();
39     }
40   }
41
42   // 将json格式转换成字符串
43   function convertData(data){
44     if( typeof data === ‘object‘ ){
45       var convertResult = "" ;
46       for(var c in data){
47         convertResult+= c + "=" + data[c] + "&";
48       }
49       convertResult = convertResult.substring(0,convertResult.length-1)
50       return convertResult;
51     }else{
52       return data;
53     }
54   }
55
56
57 }

怎么用?

 1 ajax({
 2   type: ‘GET‘,
 3   url: ‘./data.json‘,
 4   dataType: ‘json‘,
 5   data: {},
 6   beforeSend: function() {
 7     console.log(‘我是请求前的操作‘)
 8   },
 9   success: function(data) {
10     console.log(data)
11   },
12   error: function() {
13     console.log(‘请求失败‘)
14   }
15 })

原文地址:https://www.cnblogs.com/spotman/p/10392430.html

时间: 2024-11-09 05:06:47

ajax请求的原生js实现的相关文章

Chrome 调试AJAX请求返回的JS脚本

有时候会使用AJAX请求加载局部的Html页面,这个时候如果想调试局部页面中的js就比较麻烦,现在暂时发现了两种方法.第一种是在js代码中想要断点的地方加debugger,这样代码执行到此处会进入断点.此时你会发现进入断点的js文件名称是VM+数字,关于Chrome的VMJS脚本可以查看这个文档.Chrome VM B乎的解释 除了增加debugger这种略显麻烦的方式外,还有另外一种调试的方式.那就是在脚本首部增加这行代码. //# sourceURL=名字随意起.js 经测试,在Chrome

Ajax请求汇总(一)

刚开始结束Ajax请求的时候,那真的是迷迷糊糊,昏天暗地,通过学习的深入和翻阅各种资料.求助度娘,总结一下Ajax请求,与大家分享一下,希望能给学习Ajax的同学一些帮助,废话不多手,直接开始~~~ 一.Ajax请求的原理 1.原理:在Ajax请求中,html页面的中操作将通过Ajax引擎与服务器端进行通讯,然后将返回的结果提交到客户端页面的Ajax引擎,再由Ajax引擎来决定将服务器端返回数据插入到页面的指定位置.从而实现无需刷新页面的http请求. 看图: 2.Ajax请求的优点 a.当然最

常用ajax请求

JQuery版本的ajax请求:(包括处理WebService中xml字符串) 1 $.ajax({ 2 type: "POST", 3 async: true, 4 url: "", 5 data: "", 6 success: function (data) { 7 data = data.replace("<string xmlns=\"http://tempuri.org/\">", &

原生JS发送Ajax请求

注意了,划重点了,这一题考不到算我输! 一.JS原生Ajax Ajax=异步Javascript+XML: ajax是一种数据请求的方式,不需要刷新整个页面.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. ajax的核心技术当然是XMLHttpRequest对象: ajax请求过程:创建XMLHttpRequest对象.连接服务器.发送请求.接受相应数据. 废话少说上代码! p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0p

原生js和jquery发送ajax请求及封装

原生js                                   // ajax get 五部曲function ajax_get(url,data){ // 异步对象 var ajax=new XMLHttpRequest(); // 设置url和请求方式 // url方法 如果有数据要把数据拼接到url中?name=jack&age=20 if(data){ url+=?; url+=data; }else{}; ajax.open('get',url); // 发送请求 aja

AJAX请求和跨域请求详解(原生JS、Jquery)

一.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX = 异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面. 本博客实验环境: python:2.7.11 web框架:tonado jquery:2.1.1 二.“伪”AJAX 由于

JS原生Ajax请求

摘录一个JS原生Ajax请求行为,原文地址:http://caibaojian.com/ajax-jsonp.html ajax({ url: "./TestXHR.aspx", //请求地址 type: "POST", //请求方式 data: { name: "super", age: 20 }, //请求参数 dataType: "json", success: function (response, xml) { //

原生JS写Ajax的请求函数

原文:http://caibaojian.com/ajax-jsonp.html 一.JS原生ajax ajax:一种请求数据的方式,不需要刷新整个页面:ajax的技术核心是 XMLHttpRequest 对象:ajax 请求过程:创建 XMLHttpRequest 对象.连接服务器.发送请求.接收响应数据: 下面简单封装一个函数,之后稍作解释 1 ajax({ url: "./TestXHR.aspx", //请求地址 2 type: "POST", //请求方式

原生JS实现Ajax及Ajax的跨域请求

  前  言          如今,从事前端方面的程序猿们,如果,不懂一些前后台的数据交互方面的知识的话,估计都不太好意思说自己是程序猿.当然,如今有着许多的框架,都有相对应的前后台数据交互的方法. 而,其中,用得最多的应该苏算是JQuery的Ajax了.但是,今天,影子向大家介绍的是原生js的Ajax,及跨域请求. 一. JQuery的Ajax 首先,先回忆下JQuery的Ajax写法: $.ajax({ url: , type: '', dataType: '', data: { }, s