站长资源网络编程

利用promise及参数解构封装ajax请求的方法

整理:jimmy2024/10/29浏览2
简介1.前端代码Docume</div> <div class="news_infos"><div id="MyContent"><h3>1.前端代码</h3> <div class="htmlcode"> <pre class="brush:js;"> <!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> /** * type: get/post * url: http://localhost:3000 http://localhost:3000/details http://localhost:3000/users * data: lid=5 / uname=lili&upwd=123456 * dataType: '' / 'json', 如果服务端返回的是json格式字符串,就通过dataType通知ajax函数自动转换为对象 * **/ ajax({ type: 'get', url: 'http://localhost:3000', dataType: 'json' }) // data 不写在解构时值默认为 data: undefined ajax({ type: 'get', url: 'http://localhost:3000/details', data: 'lid=0', dataType: 'json' }) ajax({ type: 'post', url: 'http://localhost:3000/users', data: 'uname=lili&upwd=123456', }).then(function(res){ alert(res) }) // dataType 不写在解构时值默认为 dataType: undefined function ajax({type, url,data, dataType}){ return new Promise(function(open){ var xhr = new XMLHttpRequest() xhr.onreadystatechange = function(){ if(xhr.readyState === 4 && xhr.status === 200){ if(dataType === 'json'){ var res = JSON.parse(xhr.responseText) }else{ var res = xhr.responseText } console.log(res) open(res) } } if(type === 'get' && data !== undefined){ url += `"htmlcode"> <div class="htmlcode"> <pre class="brush:js;"> <!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> var xhr = new XMLHttpRequest() xhr.onreadystatechange = function(){ if(xhr.readyState === 4 && xhr.status === 200){ console.log(xhr.responseText) } } xhr.open('get', 'http://localhost:3000', true) xhr.send() </script> </body> </html></pre> </div> <h3>2.后端代码</h3> <p>1) 创建一个后端项目</p> <p><a href="javascript:;" onclick="showimg('/UploadFiles/2021-04-02/202101071011138.png');"><img src="/UploadFiles/2021-04-02/202101071011138.png" alt="利用promise及参数解构封装ajax请求的方法" onmousewheel="return bbimg(this)" onload="javascript:resizepic(this)" border="0"/></a></p> <p>2) 在routes下创建index.js,users.js,代码如下</p> <div class="htmlcode"> <pre class="brush:js;"> // index.js var express = require('express'); var router = express.Router(); /* GET home page. */ var products = [ { lid:1, pname:'笔记本', price:3400 }, { lid:2, pname:'手机', price:5400 }, { lid:3, pname:'iPad', price:6400 } ] router.get('/', function(req, res, next) { res.send(products) }); router.get('/details', function(req, res, next){ var lid = req.query.lid res.send(products[lid]) }) module.exports = router;</pre> </div> <div class="htmlcode"> <pre class="brush:js;"> // user.js var express = require('express'); var router = express.Router(); /* GET users listing. */ router.post('/', function(req, res, next) { var uname = req.body.uname var upwd = req.body.upwd if(uname === 'lili' && upwd === '123456'){ res.send('登陆成功') }else{ res.send({ code: 0, message: '用户名或密码错误' }) } }); module.exports = router;</pre> </div> <h3>3.注:</h3> <p>为避免跨域,可将前端代码和后端同时放在一个项目内,使用同一地址,再发送请求调取接口</p></div> </div> </div> <div class="share"> </div> <div class="nextinfo"> <p>上一篇:<a href="http://m.wwsws.com/show/1/159399.html" title="Ajax实现局部刷新的方法实例">Ajax实现局部刷新的方法实例</a></p> <p>下一篇:<a href="http://m.wwsws.com/show/1/159401.html" title="如何利用Ajax实现地区三级联动详解">如何利用Ajax实现地区三级联动详解</a></p> </div> <div class="otherlink"> <h2>最新资源</h2> <ul> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620773.html" one-link-mark="yes" title="群星《歌手2024 第3期》[FLAC/分轨][204.16MB]"><span>群星《歌手2024 第3期》[FLAC/分轨][204.16MB]</span></a> </li> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620772.html" one-link-mark="yes" title="群星《乘风2024 第6期》[320K/MP3][57.95MB]"><span>群星《乘风2024 第6期》[320K/MP3][57.95MB]</span></a> </li> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620771.html" one-link-mark="yes" title="群星《乘风2024 第6期》[FLAC/分轨][170.72MB]"><span>群星《乘风2024 第6期》[FLAC/分轨][170.72MB]</span></a> </li> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620770.html" one-link-mark="yes" title="陈立强1995-我爱你胜过这世界[福茂][WAV+CUE]"><span>陈立强1995-我爱你胜过这世界[福茂][WAV+CUE]</span></a> </li> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620769.html" one-link-mark="yes" title="群星-《2014年十大发烧唱片精选HQCD》[低速原抓WAV+CUE]"><span>群星-《2014年十大发烧唱片精选HQCD》[低速原抓</span></a> </li> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620768.html" one-link-mark="yes" title="群星2013-青春缤纷辑压箱宝大公开3CD2[新加坡限量版][WAV整轨]"><span>群星2013-青春缤纷辑压箱宝大公开3CD2[新加坡限</span></a> </li> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620767.html" one-link-mark="yes" title="林育群.2013-BalladShow(日本版)【环球】【WAV+CUE】"><span>林育群.2013-BalladShow(日本版)【环球】【WAV+</span></a> </li> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620766.html" one-link-mark="yes" title="陈加洛.1992-痛到感觉不到【宝丽金】【WAV+CUE】"><span>陈加洛.1992-痛到感觉不到【宝丽金】【WAV+CUE】</span></a> </li> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620765.html" one-link-mark="yes" title="群星.2023-宿命之敌电视剧原声带【韶愔音乐】【FLAC分轨】"><span>群星.2023-宿命之敌电视剧原声带【韶愔音乐】【</span></a> </li> <li> <i class="iconfont icon-point"></i> <a class="text-sm" href="/show/1/620764.html" one-link-mark="yes" title="東京事変-大発見[FLAC+CUE]"><span>東京事変-大発見[FLAC+CUE]</span></a> </li> </ul> </div> </div> <div class="sidebar"> <div class="cloud"><h2 class="hometitle">一句话新闻</h2><a href="/3G/1/604623.html"><ul>一文看懂荣耀MagicBook Pro 16<br><br>荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.<br>人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。<br>众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?</ul></a></div> </div> </article> <footer> <p>友情链接:<a href="http://www.imxmx.com/" title="杰晶网络" target="_blank">杰晶网络</a> <a href="http://www.ddrfans.com/" title="DDR爱好者之家" target="_blank">DDR爱好者之家</a> <a href="http://www.nqxw.com/" title="南强小屋" target="_blank">南强小屋</a> <a href="http://www.paidiu.com/" title="黑松山资源网" target="_blank">黑松山资源网</a> <a href="http://www.dyhadc.com/" title="白云城资源网" target="_blank">白云城资源网</a> <a href="/sitemap.xml">SiteMap</a></p> <p>Design by <a href="http://m.wwsws.com">伏龙阁资源网</a> <a href="/">http://m.wwsws.com</a></p> </footer> <script src="/images/nav.js"></script> <script type="text/javascript"> jQuery.noConflict(); jQuery(function() { var elm = jQuery('#left_flow2'); var startPos = jQuery(elm).offset().top; jQuery.event.add(window, "scroll", function() { var p = jQuery(window).scrollTop(); jQuery(elm).css('position', ((p) > startPos) ? 'fixed' : ''); jQuery(elm).css('top', ((p) > startPos) ? '0' : ''); }); }); </script> </body> </html>