当前位置: 首页 > news >正文

网站开发 软件开发网站设计及开发

网站开发 软件开发,网站设计及开发,广州和广州市注册公司区别,商务网站建设实训心得ajax是前端与后端数据库进行交互的最基础的工具,第三方的工具库比如jquery,axios都有对ajax进行第二次的封装,fecth是浏览器原生自带的功能,但是它与ajax还是有区别的,总结如下: ajax与fetch对比 实现效果 代码实现 …

ajax是前端与后端数据库进行交互的最基础的工具,第三方的工具库比如jquery,axios都有对ajax进行第二次的封装,fecth是浏览器原生自带的功能,但是它与ajax还是有区别的,总结如下:

ajax与fetch对比

实现效果

请添加图片描述

代码实现

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="./js/ajax.js"></script>
</head>
<body><form action="" method="POST"><input type="text" name="" id="userInput" /> <br><input type="text" name="" id="pwdInput" /> <br><input type="button" value="提交" id="btn"></form><div id="box"></div><script>window.onload = function(){const oBtn = document.querySelector('#btn');const oInput = document.querySelector('#userInput');const oPwd = document.querySelector('#pwdInput');const oBox = document.querySelector('#box');oBtn.onclick = function(){if(oInput.value == ''){alert('请输入内容');}else{http(`http://127.0.0.1:8080/api/user/form`,{name:oInput.value,pwd:oPwd.value},function(data){oBox.innerHTML = `Hello ${data.data.name},欢迎你 ${data.data.pwd}`;},"POST")}}}</script>
</body>
</html>

ajax封装

function http(url, data, cb, method = "GET") {const xhr = getXHR();console.log("🚀 ~ http ~ xhr:", xhr);xhr.open(method, url, true); // true为异步请求,false为同步请求xhr.onreadystatechange = function () {// 状态改变后执行此方法if (xhr.readyState === 4 && xhr.status === 200) {cb(JSON.parse(xhr.responseText)); // 字符创转成json}};xhr.setRequestHeader("Content-Type", "application/json");xhr.responseType = "application/json";xhr.send(method === "GET" ? null : JSON.stringify(data)); // 发送请求数据,GET方法不需要传递数据
}//兼容处理
function getXHR() {let xhr = null;if (window.XMLHttpRequest) {xhr = new XMLHttpRequest();} else {xhr = new ActiveXObject("Microsoft.XMLHTTP");}return xhr;
}

node实现的数据接口

  • 配置了跨域及解析前端请求数据的中间件
const express = require("express");
const userRouter = require("./routes/user");
const bodyParser = require("body-parser");
const cors = require("cors");
const app = express();// 允许跨域
app.use(cors());// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));// parse application/json
app.use(bodyParser.json());app.use("/api/user", userRouter);app.listen(8080, () => {console.log("Server is running on port 8080");
});
  • 接口数据处理
const express = require("express");const router = express.Router();
// 模拟数据库,也可以介入mysql或者mongodb
const names = ["张三", "李四", "王五", "赵六"];router.get("/", (req, res) => {res.send("Hello World!");
});router.post("/form", (req, res) => {console.log("🚀 ~ router.post ~ req:", req.body);const { name, pwd } = req.body;if (names.includes(name)) {return res.json({code: 1,data: {name: "该用户名已经注册啦",pwd: "",},});} else {return res.json({code: 0,data: {name: `我是服务端返回的数据` + name,pwd: `我是服务端返回的数据` + pwd,},});}
});module.exports = router;

这样,我们就可以实现前后端的数据交互了。

http://www.yayakq.cn/news/30335/

相关文章:

  • 制作网站制作网站建设的ui设计培训多长时间能学会
  • 地铁建设网站手机商城网站如何
  • 知识付费问答系统网站开发标准网站建设报价
  • 深圳专业网站建设公怎么查看网站是用什么编程语言开发的
  • 克隆网站模板网站维护后期费用
  • 佛山行业网站设计it培训机构推荐
  • ppt中网站布局图怎么做wordpress列表页怎么写
  • 有后台的网站模板免费建站哪家好
  • 网站开发商城16882016网站建设总结
  • 鹿寨建设局网站网站构建
  • 帝国网站认证码制作网站时搜索图标如何做
  • 网站主体备案信息查询制作公司网站用阿里云
  • 景点介绍网站模板二级a做爰片免费视网站
  • 保定网站建设的过程网站建设湖北
  • cn网站永州市城乡建设中等职业技术学校网站
  • 连云港seo网站推广查网站关键词工具
  • 我想建设一个网站解决方案服务商
  • 汇通网做期货的网站做期货的网站网站地图在线生成器
  • 做二维码报名网站漂亮的html单页
  • 上海电商网站建设代理网站推荐
  • 东莞网站建设费用临沂企业建站程序
  • 申请手机网站wordpress上图片不显示
  • 手机在线网页制作网站优化中友情链接怎么做
  • 怎样做网站排名优化全国建筑资质查询系统
  • 搜索关键词网站做app界面设计用什么软件
  • 提高网站安全性内蒙古app开发公司
  • 做网站公司那家好悟空建站seo服务
  • 车牌照丢失能在网站做吗wordpress设置固定链接不生效
  • 魏县网站制作怎么做系统网站
  • 华强北 网站建设WordPress文章分栏置顶