封装异步请求

1、将函数作为参数进行使用

2、因为获取数据是在一个注册事件中获取的,所以只有事件触发的时候才会调用此函数

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<button>发送请求1</button>
<button>发送请求2</button>
<script>
var btn1 = document.getElementsByTagName("button")[0];
var btn2 = document.getElementsByTagName("button")[1];
btn1.onclick = function () {
ajax_tool('05.php', '', 'get', function (msg) {
alert(msg);
})
}
btn2.onclick = function () {
ajax_tool_pro({
url: '05.php',
data: '',
method: 'get',
success: function (data) {
console.log(data);
}
});
} /*
参数1:url
参数2:数据
参数3:请求的方法
参数4:数据成功获取以后 调用的方法
*/
function ajax_tool(url, data, method, success) {
var ajax = new XMLHttpRequest();
if (method == 'get') {
if (data) {
url += '?';
url += data;
}
ajax.open(method, url);
ajax.send();
} else {
ajax.open(method, url);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
if (data) {
ajax.send(data);
} else {
ajax.send();
}
}
ajax.onreadystatechange = function () {
if (ajax.readyState == 4 && ajax.status == 200) {
success(ajax.responseText);
}
}
} // url:请求的url
// data:发送的数据
// method:请求的方法
// success:请求成功以后 调用的函数 function ajax_tool_pro(option) {
var ajax = new XMLHttpRequest();
if (option.method == 'get') {
if (option.data) {
option.url += '?';
option.url += option.data;
}
ajax.open(option.method, option.url);
ajax.send();
} else {
ajax.open(option.method, option.url);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
if (option.data) {
ajax.send(option.data);
} else {
ajax.send();
}
}
ajax.onreadystatechange = function () {
if (ajax.readyState == 4 && ajax.status == 200) {
option.success(ajax.responseText);
}
}
}
</script>
</body>
</html>
<?php
header("content-type:text/html;charset=utf-8");
echo '服务器已经收到请求';
?>

Ajax——异步基础知识(三)的更多相关文章

  1. Ajax——异步基础知识(一)

    基础概念 1.异步请求可以做到偷偷向服务器发送请求,而页面却不刷新 2.get异步请求传递参数是通过url追加键值对的方式 3.post异步请求比较特殊,需要设置请求的类型 User-Agent:浏览 ...

  2. Ajax——异步基础知识(二)

    XML数据格式 首行必须是版本号和格式等信息 <?xml version="1.0" encoding="utf-8" ?> 最外层需要一个根节点进 ...

  3. java 基础知识三 java变量

    java  基础知识 三 变量 1.作用域 {} 包围起来的代码 称之为代码块,在块中声明的变量只能在块中使用 2.常量 就是固定不变的量,一旦被定义,它的值就不能再被改变. 3.变量 变量必须在程序 ...

  4. Python基础知识(三)

    Python基础知识(三) 一丶整型 #二进制转成十进制的方法 # 128 64 32 16 8 4 2 1 1 1 1 1 1 1 例如数字5 : 101 #十进制转成二进制的方法 递归除取余数,从 ...

  5. 快速掌握JavaScript面试基础知识(三)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  6. C# 基础知识 (三).主子对话框数值传递

    在C# winform编程中,我们经常会遇到不同窗口间需要传递数值的问题.比如数据库的应用,主窗口填写内容num1,点击按钮,在弹出的子窗口显示对应num1值;或者在子窗口填写新注册用户名信息,在主窗 ...

  7. Dapper基础知识三

    在下刚毕业工作,之前实习有用到Dapper?这几天新项目想用上Dapper,在下比较菜鸟,这块只是个人对Dapper的一种总结. Dapper,当项目在开发的时候,在没有必要使用依赖注入的时候,如何做 ...

  8. Ajax——php基础知识(三)

    上传文件 1.get是传不了文件的,只能用post 2.enctype需要重新设置,默认是application/x-www-form-urlencoded,会在发送到服务器之前,所有字符都会进行编码 ...

  9. Java的基础知识三

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

随机推荐

  1. jquery转义字符之单引号

    jquery动态生成html,并且html中包含方法时,如 var varHtml = '<input type="button" value="点我删除" ...

  2. CentOS 安装Oracle 11g R2

    CentOS 安装Oracle 11g R2 学习了-/ https://www.osyunwei.com/archives/5445.html

  3. MYSQL中插入数据以及修改数据的部分方法

    #插入/增加:使用INSERT #修改:使用ALTER #修改数据类型ALTER TABLE table02 MODIFY COLUMN cname VARCHAR(100);ALTER TABLE ...

  4. Ubuntu 16.04修复PDF默认使用ImageMagick打开无法设置其它默认的问题(默认打开程序设置)

    打开:~/.config/mimeapps.list 去掉以下几项: image/pdf=display-im6.desktop image/pdf=display-im6.q16.desktop;d ...

  5. WebDev.WebServer40.EXE

    http://www.cnblogs.com/tong-tong/archive/2013/05/02/3049428.html 大学玩asp.net时就发现VS在Debug时会起一个web服务,这东 ...

  6. ubuntu tweak Install

    ubuntu tweak 1:增加PPA源 sudo add-apt-repository ppa:tualatrix/ppa 2:編輯源列表sudo gedit /etc/apt/sources.l ...

  7. [Vue @Component] Dynamic Vue.js Components with the component element

    You can dynamically switch between components in a template by using the reserved <component>  ...

  8. zoj 1880 - Tug of War

    题目:有n个人分成两组,两组人数差不能超过1,找到两组的人重量之差的最小值. 分析:dp,二维01背包. 由于必须放在两个组中的一组,直接背包全部可到状态, 取出相差不超过 1的最接近 sum/2的值 ...

  9. POJ 题目3667 Hotel(线段树,区间更新查询,求连续区间)

    Hotel Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 13805   Accepted: 5996 Descriptio ...

  10. Istio 1.1部署实践

    前提条件 正确安装配置Kubernetes集群 CentOS Linux release 7.5.1804 安装 下载istio 1.1版本 [root@vm157 ~]# wget https:// ...