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

惠州网站搭建找谁广州网站建设泸州

惠州网站搭建找谁,广州网站建设泸州,图片高清处理在线,域名备案一定要服务器吗Promise封装原生ajax 1.node的内置模块url, http 2.Promise封装原生ajax 01-node的内置模块 # url: 操作网址 let url require(url) url.parse(网址, [布尔值: 决定是否将查询字符串转换为对象格式]): 将网址解析成对象# http: 创建本地服务器 let http requi…

Promise封装原生ajax

1.node的内置模块url, http

2.Promise封装原生ajax

01-node的内置模块

# url: 操作网址
let url = require('url')
url.parse('网址', [布尔值: 决定是否将查询字符串转换为对象格式]): 将网址解析成对象# http: 创建本地服务器
let http = require('http')let server = http.createServer(function (req, res) {// req: 前端提交的数据// res: 后端响应的内容console.log('服务器被访问了一次');
})
server.listen('8888', console.log('服务器启动成功'))

02-Promise封装ajax【面试题】

/* 参数:1. 请求地址,url: 必填2. 请求方式,method: 选填 默认get请求3. 提交的参数,data: 选填 默认值 ''4. post的请求头, headers:选填, 默认值 {content-type, 'application/x-www-form-urlencoded'}返回值:=> 必须=> 返回的内容可以是回调函数, 可能会造成回调地狱=> 建议选择的是返回Promise,可以支持async/await函数封装的方法:相同部分放到函数体内,不同部分传参搞定函数封装的原则:尽可能的让程序的兼容性更强=> 参数是否齐全=> 参数的格式是否正确*/// 将对象转换为查询字符串
function queryStringify(data) {let str = ''for (let key in data) {str += `${key}=${data[key]}&`}return str.slice(0, -1)
}function createAjax(url) {var BaseURL = urlfunction ajax(options = {}) {// 这里options参数选择了对象:对象可以不用考虑参数的顺序// throw new Error(): 创建一个错误信息对象,并抛出(显示在控制台)// 1.1 请求地址是必填项if (!options.url) throw new Error('请求地址是必填项')// 1.2 请求方式 这个地方可以是undefined, 也可以是'GET'或'POST'if (!(options.method === undefined || /^(GET|POST)$/i.test(options.method))) {throw new Error('目前仅支持GET或POST,敬请期待更多方式')}// 1.3 提交的参数 这个地方也可以undefined,也可以是字符串,也可以是对象if (!(options.data === undefined || typeof options.data === 'string' || options.data.constructor === Object)) {throw new Error('支持的数据类型可以是字符串或者对象')}// 1.4 post请求头,可以是undefined, 也可以是表单格式提交if (/^POST$/i.test(options.method)) {if (!(options.headers === undefined || options.headers['content-type'] === 'application/x-www-form-urlencoded' || options.headers['content-type'] === 'application/json')) {throw new Error('post请求,必须设置请求头')}}// 如果options里面的参数不包含请求方式和提交参数,就要提供默认值let _default = {url: BaseURL + options.url,method: options.method || 'GET',data: options.data || '',headers: options.headers || { 'content-type': 'application/x-www-form-urlencoded' }}// 提交的参数的格式可以是对象形式,就需要将对象先转换成查询字符串,再做拼接if (_default.data.constructor === Object) _default.data = queryStringify(_default.data)// 注意:如果请求方式是get,并且需要携带参数,就需要把参数拼接在url地址的后面if (/^GET$/i.test(_default.method) && _default.data) _default.url += '?' + _default.data// 注意:发送了请求之后,希望可以接收到响应的数据,这里就使用了Promise, 再将结果resolve出去即可let p = new Promise((resolve, reject) => {// 2. 发起ajax请求// 2.1 创建一个实例对象,负责发起请求和接收响应的数据let xhr = new XMLHttpRequest()// 2.2 配置请求方式和请求地址xhr.open(_default.method, _default.url)// 2.3 设置请求头信息// xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')if (/^POST$/i.test(_default.method)) xhr.setRequestHeader('content-type', _default.headers['content-type'])// // 2.4 发送请求xhr.send(/^POST$/i.test(_default.method) && _default.data)// 2.4 监听请求状态xhr.onreadystatechange = function () {// 如果请求的状态码等于4 并且 http请求码等于200if (xhr.readyState === 4 && xhr.status === 200) {let res = JSON.parse(xhr.responseText)// console.log(res);resolve(res)}}})return p}return ajax
}# 方法调用async function fun() {let ajax = createAjax('http://115.159.153.85:8001')let r1 = await ajax({url: '/getTest',// method: 'POST',// headers: { 'content-type': 'application/json' },data: {name: 'xdj',age: 18}})let r2 = await ajax({url: '/postTest',method: 'POST',// headers: { 'content-type': 'application/json' },data: {name: r1.msg.slice(0, 3),age: 18}})}
fun()
http://www.yayakq.cn/news/449565/

相关文章:

  • 如何修改网站logo网站怎么做后期维护
  • 北京工程网站建设免费空间网站推荐
  • 网站站内优化案例建站公司排名
  • 国内有类似wordpressseo搜索工具栏
  • 网站seo优化分析linux wordpress 主题
  • 长春有几个站可以坐火车嘉兴百度快照优化排名
  • 类似于美团的网站怎么做天汇大厦网站建设公司
  • 个人品牌网站设计网站开发合同存在的缺陷
  • 仿朋友圈网站建设购物网站建设开发
  • 网站建设 项目书 框架wap游戏入口
  • 毕业设计网站最容易做什莫类型网络营销公司全网天下
  • 北京网站建设方案系统国内网站建设哪家好
  • 杭州最大的网站开发如何登录qq网页版
  • 现在做一个网站多少钱免费申请域名建立网站
  • 桂林网站制作找志合网络公司平台推广方式有哪些
  • thinkphp做的商城网站分销平台网站订单模板
  • 做网站项目收获中国招标与采购网
  • 网上学编程的有哪些比较好的网站网站作品怎么做链接
  • 开淘宝店要自己做网站吗济南网站制作技术交流
  • 男人女人晚上做那事网站建设银行集团网站
  • 中学生制作的网站google play下载官方版
  • 中国观鸟记录的网站架构服务器域名是什么?
  • 长沙的网站建设公司哪家好桂林东西巷介绍
  • 四川省建设厅官网站网站首页优化的目的
  • 网站模版怎么做长春制作网站哪家好
  • 做网站防护的网站网站开发后台前端数据库
  • 设计网站需要考虑哪些销帮帮crm怎么样
  • 北京企业网站备案网站线框图软件
  • 企业网站有什么用网站建设公司的方案模板
  • 做百度手机网站点击软个人网站需要几个备案