用原生JS写PHP里的Ajax

 1 // 封装的 ajax网络请求函数
 2 // obj 是一个对象
 3 function AJAX(obj){
 4     // 1、创建 ajax 对象
 5     var ajaxObj = null;
 6     if (window.XMLHttpRequest) {
 7         ajaxObj = new XMLHttpRequest();
 8     }else{
 9         ajaxObj = new ActiveXObject("Microsoft.XMLHTTP");;
10     }
11
12     // 设置请求的类型
13     obj.type = obj.type.toUpperCase() || "GET";
14
15     // 如果是get请求,并且需要传递参数,则需要给 url后面拼接参数
16     if (obj.type == "GET") {
17         var arr = []; // 定义数组,用于把对象存储到数据里面
18         for(var key in obj.data){
19             arr.push(key+"="+obj.data[key]);
20         }
21         // 用&分隔数组,让其转化为类似:name=gxm&age=18的形式
22         var str = arr.join("&");
23         obj.url = obj.url +"?"+str;
24             // 拨号
25         ajaxObj.open(obj.type,obj.url,true);
26         //2.1设置头文件
27         ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
28
29
30         // 发送"name=123&dad=131"
31         ajaxObj.send();
32     }else{
33         var arr = []; // 定义数组,用于把对象存储到数据里面
34         for(var key in obj.data){
35             arr.push(key+"="+obj.data[key]);
36         }
37         // 用&分隔数组,让其转化为类似:name=gxm&age=18的形式
38         var str = arr.join("&");
39         ajaxObj.open(obj.type,obj.url,true);
40         ajaxObj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
41         ajaxObj.send(str);
42     }
43
44
45     // 监听
46     //
47     ajaxObj.onreadystatechange = function(){
48         if (ajaxObj.readyState == 4) {
49             if (ajaxObj.status >= 200 && ajaxObj.status < 300|| ajaxObj.status == 304) {
50                     // 请求成功
51                     console.log(ajaxObj.responseText)
52                     // obj.success(ajaxObj.responseText);
53             }else{
54                 // 请求失败
55                     obj.error(ajaxObj.status);
56             }
57
58
59         }
60     }
61
62
63
64
65
66 }
时间: 2024-10-03 13:27:50

用原生JS写PHP里的Ajax的相关文章

原生JS写的ajax函数

参照JQuery中的ajax功能,用原生JS写了一个ajax,功能相对JQuery要少很多,不过基本功能都有,包括JSONP. 调用的方式分为两种: 1. ajax(url, {}); 2. ajax({}); 调用的方法参照JQuery的ajax,只是 不需要写$.ajax ,只需要写 ajax 就可以了. 代码如下: !function () { var jsonp_idx = 1; return ajax = function (url, options) { if (typeof url

原生js写的一个弧形菜单插件

弧形菜单是一种半弧式或者全弧形菜单,是一种不同于传统横向或者竖向菜单形式的菜单.最近在网上看到好多人写出了这种效果,于是也尝试自己写了一个. 实现方式:原生态js 主要结构: 1.参数合并 1 var defaultPra = { 2 mainMenuId: "ArcMenu",//主菜单id 3 menuBoxId:"menuBox",//菜单包裹id 4 position: "",//弧形菜单 5 customPosition:"0

用原生JS写移动动画案例及实际应用

js很强大 相信很多人都知道,那么它有哪些强大之处呢?有兴趣的人可以去查查,这里就不赘述了,因为不在本片文章讨论的范围. 我们要讲的是怎么用原生JS写移动动画?我们先举一个最简单的动画例子,很多网站的左边或右边会有个分享的框,鼠标放上去就还移出一个列表,里面是要分享的地址.鼠标移开,就会移进去. 要实现这个效果要怎么做呢? 可以想一想,鼠标经过和鼠标离开很好理解 用onmousemove事件和onmouseout事件就能完成. 那移动动画呢?我们可以一步一步思考, 首先,一开始是这样的 完成移动

原生js写的贪吃蛇网页版游戏

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>原生js写的贪吃蛇网页版游戏</title> </head> <body><div><A href="http://www.999jiujiu.com/">h

使用原生js写ajax

// 使用原生js 封装ajax // 兼容xhr对象 function createXHR(){ if(typeof XMLHttpRequest != "undefined"){ // 非IE6浏览器 return new XMLHttpRequest(); }else if(typeof ActiveXObject != "undefined"){ // IE6浏览器 var version = [ "MSXML2.XMLHttp.6.0"

用.native修饰器来对外部组件进行构造器内部方法的调用以及用原生js获取构造器里的方法

html <div id="app"> <span v-text="number"></span> <btn @click.native="add(10,$event)"></btn> <button @click="add(10,$event)">add</button> </div> <button onclick=&qu

原生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请求(复习)

今天本地想测试一个接口,不想用框架想用js快速完成,突然发现,我居然忘了这个最基本的代码.好吧,只能复习一波. 在框架泛滥的今天,用惯$.ajax(),axios,superAgent等框架的你们,还能清晰记得原生ajax的写法吗? XMLHttpRequest 对象 先来复习一下XMLHttpRequest 对象, 方    法 描    述 abort() 停止当前请求  getAllResponseHeaders() 把HTTP请求的所有响应首部作为键/值对返回 getResponseHe

原生js写个简单的数字键盘(by vczero)

一.起因 最近支付的同事说,数字键盘有些问题:在移动设备上有时候比较难出现点(.) 和数字在一起的格局:因此,考虑到这种情况,就建议手写个模拟键盘了.花了一晚上的时间,写了个简单的键盘,基本能用.考虑到有的开发者没有使用juqery,就使用原生的js了. Github地址:https://github.com/vczero/keyboard 二.截图如下 三.体验地址(需要点击input才能弹出数字键盘的哦) URL: http://vczero.github.io/num_key/index.