ajax.js

// 引用expess框架
const express = require('express');
// 处理路径
const path = require('path');const bodyParser = require('body-parser');
const fs = require('fs');// 创建网站服务器
const app = express();
app.use(bodyParser.json());
app.get('/first', (req, res) => {res.send('hello geyao')
})
app.get('/responsdate', (req, res) => {res.status(400).send({ "name": "geyao" })
})
app.post('/post', (req, res) => {res.send(req.body);
})
app.get('/get', (req, res) => {res.send(req.query);
})
app.post('/json', (req, res) => {res.send(req.body);
})
app.get('/readystate', (req, res) => {res.send('hello');
})
app.get('/error', (req, res) => {res.status(400).send('not ok');
})
app.get('/geyao', (req, res) => {res.send('hello geyao')
})
app.get('/cache', (req, res) => {fs.readFile('./text.txt', (err, result) => {res.send(result);});
})
app.use(express.static(path.join(__dirname)));
// 监听端口
app.listen(3000);
console.log('网站服务器启动成功, 请访问localhost')

ajax10.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>function ajax(options) {//创建ajax对象var xhr = new XMLHttpRequest();var params = '';//循环用户的参数for (var attr in options.data) {params += attr + '=' + options.data[attr] + '&'}params = params.substr(0, params.length - 1);if (options.type == 'get') {options.url = options.url + '?' + params;}console.log(params);//配置ajax对象xhr.open(options.type, options.url);//发送请求if (options.type == 'post') {var contentType = options.header['Content-Type'];xhr.setRequestHeader('Content-type', options.header['Content-Type']);if (contentType == 'application/json') {xhr.send(JSON.stringify(options.data))} else {xhr.send(params);}} else {xhr.send();}//触发xhr.onload = function() {//状态码分开if (xhr.status == 200) {console.log(xhr.responseText, xhr);options.success('hah');} else {options.error(xhr.responseText, xhr);}}}ajax({type: 'get',data: {name: 'geayo',age: 20},url: 'http://localhost:3000/responsdate',success: function(data) {console.log('这里是成功函数' + data);},error: function(data, xhr) {console.log('这里是失败函数' + data);console.log(xhr);},header: {'Content-Type': 'application/json'}})</script>
</body></html>

ajax1.html

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><script>//1创建ajax对象var xhr = new XMLHttpRequest();//请求方式xhr.open('get', 'http://localhost:3000/responsdate');//发送请求xhr.send();//获取数据xhr.onload = function() {/* console.log(xhr.responseText); */var res = JSON.parse(xhr.responseText);console.log(res);var str = '<h2></h2>'document.body.innerHTML = str;}</script>
</body></html>

运行结果

前端学习(1429):ajax封装四相关推荐

  1. 前端一定得学ajax吗,前端学习之ajax

    一.什么是json JSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式. 它基于ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于 ...

  2. 前端学习笔记——Ajax

    URL地址 URL地址的概念 URL (全称是UniformResourcel ocator)中文叫统一资源定位符, 用于标识互联网上每个资源的唯一存放位置,浏览器只有通过URL地址,才能正确定位资源 ...

  3. 前端学习笔记--AJAX的应用(三)form表单改为AJAX提交

     无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程. 参考博客:http://ww ...

  4. 前端学习总结(十四)javascript设计模式

    一 什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. ...

  5. Linux学习之线程封装四:基于接口的封装

    业务逻辑提供者类"CLThreadFunctionProvider" 头文件: View Code #ifndef CLTHREADFUNCTIONPROVIDER_H#defin ...

  6. addeventlistener不支持ajax_好程序员web前端学习路线分享了解AJAX是什么

    好程序员web前端学习路线分享了解AJAX是什么首先是服务器 什么是服务器:咱们的页面来源于服务器:实例(在phpnwo上面存放一个页面), 咱们把页面放在互联网的服务器上,就有了自己的网站了. 1. ...

  7. ajax请求是宏任务还是微任务_好程序员web前端学习路线分享了解AJAX是什么

    好程序员web前端学习路线分享了解AJAX是什么首先是服务器 什么是服务器:咱们的页面来源于服务器:实例(在phpnwo上面存放一个页面), 咱们把页面放在互联网的服务器上,就有了自己的网站了. 1. ...

  8. 【前端学习之HTMLCSS进阶篇】-- HTML第四篇 -- 美化表单

    [前端学习之HTML&CSS进阶篇]-- HTML第四篇 – 美化表单 文章目录 [前端学习之HTML&CSS进阶篇]-- HTML第四篇 -- 美化表单 前言 一.新的伪类 1. f ...

  9. 一个正经的前端学习 开源 仓库(阶段十四)

    低调务实优秀中国好青年 (简介) && 附加答案 github.com/webVueBlog/- 一个 ☝️ 正经的前端学习 开源 仓库,启发来自 淘宝大佬 @冴羽 ,初心做一个真正能 ...

最新文章

  1. ionic中的后退方法
  2. Packagist发布个人的Composer包
  3. Go的io/ioutil
  4. 服务器位置缩写,服务器地区缩写
  5. TCP的FIN、ACK、SYN、URG、PSH及攻击方式
  6. 树形结构 —— 树与二叉树 —— 树的重心
  7. codeforces 361 D. Levko and Array(dp+二分)
  8. 利用wxpython编写GUI
  9. 2018.3.29亚信科技笔试
  10. RF接口测试-post
  11. 中国无线城市市场发展策略及未来前景规划报告2022年版
  12. 利用Email包实现邮件的群收发功能
  13. 记录mysql数据库被攻击
  14. codeblocks 添加多个工程文件 codeblocks添加已存在工程
  15. GitHub 上一款全能高速下载工具!堪比某度的会员
  16. 国家自然科学基金查阅
  17. unity3D游戏开发十一之物理引擎
  18. ps保存html和图像格式不显示,photoshop保存web格式不能显示该怎样解决
  19. 咖啡色的羊驼学习Golang
  20. 计算机时间、unix时间、linux时间、java时间为何以1970年1月1日为原点?从1970年1月1日开始计算?

热门文章

  1. MFC编程之创建Ribbon样式的应用程序框架
  2. 【ExtJS】FormPanel 布局(一)
  3. 批量读入一个文件夹中文件的数据操作实例
  4. Java路径问题最终解决方案使用演示
  5. thinkphp日志泄漏漏洞_ThinkPHP框架被爆任意代码执行漏洞
  6. mysql整站源码安装_MySQL入门01-MySQL源码安装
  7. 怎样用css设置图片下的投影,css – 做这种投影的最佳方法是什么?
  8. the python interpreter is in_the python interpreter is in - 百度学术
  9. python基础之序列类型的方法——列表元组
  10. Linux 字符设备驱动开发基础(四)—— ioctl() 函数解析