前端学习(1429):ajax封装四
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封装四相关推荐
- 前端一定得学ajax吗,前端学习之ajax
一.什么是json JSON(JavaScriptObjectNotation,JS对象标记)是一种轻量级的数据交换格式. 它基于ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于 ...
- 前端学习笔记——Ajax
URL地址 URL地址的概念 URL (全称是UniformResourcel ocator)中文叫统一资源定位符, 用于标识互联网上每个资源的唯一存放位置,浏览器只有通过URL地址,才能正确定位资源 ...
- 前端学习笔记--AJAX的应用(三)form表单改为AJAX提交
无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程. 参考博客:http://ww ...
- 前端学习总结(十四)javascript设计模式
一 什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. ...
- Linux学习之线程封装四:基于接口的封装
业务逻辑提供者类"CLThreadFunctionProvider" 头文件: View Code #ifndef CLTHREADFUNCTIONPROVIDER_H#defin ...
- addeventlistener不支持ajax_好程序员web前端学习路线分享了解AJAX是什么
好程序员web前端学习路线分享了解AJAX是什么首先是服务器 什么是服务器:咱们的页面来源于服务器:实例(在phpnwo上面存放一个页面), 咱们把页面放在互联网的服务器上,就有了自己的网站了. 1. ...
- ajax请求是宏任务还是微任务_好程序员web前端学习路线分享了解AJAX是什么
好程序员web前端学习路线分享了解AJAX是什么首先是服务器 什么是服务器:咱们的页面来源于服务器:实例(在phpnwo上面存放一个页面), 咱们把页面放在互联网的服务器上,就有了自己的网站了. 1. ...
- 【前端学习之HTMLCSS进阶篇】-- HTML第四篇 -- 美化表单
[前端学习之HTML&CSS进阶篇]-- HTML第四篇 – 美化表单 文章目录 [前端学习之HTML&CSS进阶篇]-- HTML第四篇 -- 美化表单 前言 一.新的伪类 1. f ...
- 一个正经的前端学习 开源 仓库(阶段十四)
低调务实优秀中国好青年 (简介) && 附加答案 github.com/webVueBlog/- 一个 ☝️ 正经的前端学习 开源 仓库,启发来自 淘宝大佬 @冴羽 ,初心做一个真正能 ...
最新文章
- ionic中的后退方法
- Packagist发布个人的Composer包
- Go的io/ioutil
- 服务器位置缩写,服务器地区缩写
- TCP的FIN、ACK、SYN、URG、PSH及攻击方式
- 树形结构 —— 树与二叉树 —— 树的重心
- codeforces 361 D. Levko and Array(dp+二分)
- 利用wxpython编写GUI
- 2018.3.29亚信科技笔试
- RF接口测试-post
- 中国无线城市市场发展策略及未来前景规划报告2022年版
- 利用Email包实现邮件的群收发功能
- 记录mysql数据库被攻击
- codeblocks 添加多个工程文件 codeblocks添加已存在工程
- GitHub 上一款全能高速下载工具!堪比某度的会员
- 国家自然科学基金查阅
- unity3D游戏开发十一之物理引擎
- ps保存html和图像格式不显示,photoshop保存web格式不能显示该怎样解决
- 咖啡色的羊驼学习Golang
- 计算机时间、unix时间、linux时间、java时间为何以1970年1月1日为原点?从1970年1月1日开始计算?
热门文章
- MFC编程之创建Ribbon样式的应用程序框架
- 【ExtJS】FormPanel 布局(一)
- 批量读入一个文件夹中文件的数据操作实例
- Java路径问题最终解决方案使用演示
- thinkphp日志泄漏漏洞_ThinkPHP框架被爆任意代码执行漏洞
- mysql整站源码安装_MySQL入门01-MySQL源码安装
- 怎样用css设置图片下的投影,css – 做这种投影的最佳方法是什么?
- the python interpreter is in_the python interpreter is in - 百度学术
- python基础之序列类型的方法——列表元组
- Linux 字符设备驱动开发基础(四)—— ioctl() 函数解析