路由与ajax(第三天)

 

一、node.js 路由

在一个域名下,会有很多个可访问的地址,这就是路由。

我们呢,要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据,来决定执行哪些代码。/
因此,我们要查看HTTP请求,从中提取出来我们需要的URL以及GET/POST参数。

我们需要的这些数据都会包含在request对象中,该对象作为onRequest()回调函数的第一个参数传递。但是为了解析这些数据,我们需要额外的Node.js模块,它们分别是url和querystring模块。

url模块:

var urlobj=url.parse(req.url)

urlobj.pathname

urlobj.query

 querystring模块:

//可以吧参数解析为一个对象

var queryobj=querystring.parse(urlobj.query)


   url.parse(string).query
                                           |
           url.parse(string).pathname      |
                       |                   |
                       |                   |
                     ------ -------------------
http://localhost:8888/start?foo=bar&hello=world
                                ---       -----
                                 |          |
                                 |          |
              querystring.parse(queryString)["foo"]    |
                                            |
                         querystring.parse(queryString)["hello"]

实例 :.把当前网址的参数解析为一个对象
                  "/20200304/index.html?user=karen&id=123"

var urlobj=req.url.split("?")
	var pathname=urlobj[0]
	var queryobj={}
	var arr=urlobj[1].split("&")
	for(var i=0;i<arr.length;i++){
		var obj=arr[i].split("=")
		queryobj[obj[0]]=obj[1]
	}

二、接口

1、数据接口

前端发送布局数据请求时, 后端提供数据,接受参数 ,发送前端想要的数据 。

if(req.url=="/hqyj"){
		res.end('{name:"karen",age:18}')
	}

2、静态资源接口

前端发送网络请求,后端提供静态资源(磁盘中文件)。静态资源托管==>网址和托管的目录对应起来 。

	 var urlobj=url.parse(req.url)
		// console.log(urlobj)
		var pathname=urlobj.pathname
		var queryobj=querystring.parse(urlobj.query) 
		console.log(pathname,queryobj)
		fs.readFile(__dirname+"/src"+pathname,(err,data)=>{res.end(data)})

三、Ajax

1、Ajax简介

AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

AJAX = Asynchronous JavaScript and XML.

AJAX 是一种用于创建快速动态网页的技术。

AJAX 通过在后台与服务器进行少量数据交换,使网页实现异步更新。这意味着可以在不重载整个页面的情况下,对网页的某些部分进行更新。

传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个页面。

有很多使用 AJAX 的应用程序案例:Google Maps、Gmail、Youtube 和 Facebook。

2、Ajax工作原理

https://www.runoob.com/wp-content/uploads/2013/08/ajax.gif

3、ajax的使用及实现步骤

   (1) 创建XMLHttpRequest对象,也就是创建一个异步调用对象.
  (2) 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.
  (3)设置响应HTTP请求状态变化的函数.
  (4)发送HTTP请求.
  (5)获取异步调用返回的数据.
  (6)使用JavaScript和DOM实现局部刷新.
1.构造ajax对象 做兼容

var xhr;
var xhr=new window.XMLHttpRequest()||new ActiveXObject("Micsoft.XMLHTTP")

2.向服务器发送请求

xhr.open(method,url,async);
xhr.send();

3.监听网络状态变化

xhr.onreadystatechange = function() {
				console.log(xhr.readyState)
				//当网络状态为4的时候,代表数据包已经发送过来了
				//状态码为200代表是这个接口原来制定的接口数据格式
				if (xhr.readyState == 4&&xhr.status==200) {}
// onreadystatechange事件可指定一个事件处理函数来处理XMLHttpRequest对象的执行结果。

四、请求类型:GET或POST

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

xhr.open("GET","ajax_info.txt",true);
xhr.send();
方法描述
open(method,url,async)

规定请求的类型、URL 以及是否异步处理请求。

  • method:请求的类型;GET 或 POST
  • url:文件在服务器上的位置
  • async:true(异步)或 false(同步)
send(string)

将请求发送到服务器。

  • string:仅用于 POST 请求

GET 还是 POST?

与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。

然而,在以下情况中,请使用 POST 请求:

  • 无法使用缓存文件(更新服务器上的文件或数据库)
  • 向服务器发送大量数据(POST 没有数据量限制)
  • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

GET 请求

一个简单的 GET 请求:

xmlhttp.open("GET","/try/ajax/demo_get.php",true);
xmlhttp.send();

在上面的例子中,您可能得到的是缓存的结果。

为了避免这种情况,请向 URL 添加一个唯一的 ID:


xhr.open("GET","/try/ajax/demo_get.php?t=" + Math.random(),true);
xhr.send();

如果希望通过 GET 方法发送信息,请向 URL 添加信息:

xhr.open("GET","/try/ajax/demo_get2.php?fname=Henry&lname=Ford",true);
xhr.send();

 

GET请求具有以下的几个特点:
· GET 请求可被缓存
· GET 请求保留在浏览器历史记录中
· GET 请求可被收藏为书签
· GET 请求不应在处理敏感数据时使用
· GET 请求有长度限制
· GET 请求只应当用于取回数据

POST 请求

一个简单 POST 请求:

xhr.open("POST","/try/ajax/demo_post.php",true);
xhr.send();

如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:

xhr.open("POST","/try/ajax/demo_post2.php",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("fname=Henry&lname=Ford");
方法描述
setRequestHeader(header,value)

向请求添加 HTTP 头。

  • header: 规定头的名称
  • value: 规定头的值

POST请求的特点如下:
· POST 请求不会被缓存
· POST 请求不会保留在浏览器历史记录中
· POST 请求不能被收藏为书签
· POST 请求对数据长度没有要求

hyb月朝
关注 关注
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ajax设置cookie django,Django进阶(路由系统、中间件、缓存、Cookie和Session、Ajax发送数据...
weixin_42416398的博客
08-05 415
路由系统1、每个路由规则对应一个view中的函数url(r'^index/(\d*)', views.index),url(r'^manage/(?P\w*)/(?P\d*)', views.manage),url(r'^manage/(?P\w*)', views.manage,{'id':333}),2、根据app对路由规则进行一次分类rl(r'^web/',include('web.urls...
前端啥时候用到路由ajax,要实现前后端分离,路由是必须要写的吗?
weixin_42512183的博客
08-05 369
最近接触的是基于express的sails.js,这是一个使用nodejs的后台框架。在渲染前端页面的时候是通过后端路由来实现的,前端页面使用的模板为ejs。由于使用这种开发方式,导致前后端严重耦合,开发效率比较低。现在想做的就是实现前后端分离。首先,我对路由这个概念理解的不是很透彻,如果大神们能够概括一下就万分感谢了。第一,后端写路由渲染前端页面我能够理解,很多的工作交给后端去完成。第二,如果后...
jQuery ajax 路由和过滤器
weixin_30391339的博客
08-02 218
好的 web api 应该在 URL 里面有足够的描述信息,并且每个资源有它对应的 URL。 遗憾的是,我用到的一个遗留系统并没有做到这样。于是在客户端应用jQuery的ajaxPrefilter改造了一下调用方法。 使用比对 // 改造之后 $.post('/ajax/dir/page/action',{page:1}) // 改造之前 $.post('/ajax.php',...
后端——路由、网络请求(AJAX、回调地狱、Promise设计封装ajax工具、jQuery框架的ajax、axios框架的ajax、axios 和 Fecth 、笔试题/面试题)
qq_52301431的博客
08-03 338
success:function(data,sta,xhr)//请求成功的回调,三个参数:第一个响应的数据(服务器响应的是什么类型的数据,这里就是对应的类型:比如响应json那这里就是json格式的数据,响应script这里就是加载的js文本). 第二个jq状态码,一般都是"success". 第三个发送请求的XMLHttpRequest对象,如果是js的请求(dataType:’script’),第三个参数是没有值得。data:String//发送的参数:"count=25&maxid=29448"。..
在线教育项目【前端路由Ajax实现分析&与后端连接分析】
若有所执,必有所成,心之所向,必显光芒
09-04 574
前端工程:路由的配置,发送axios配置,与后端网关中的方法进行连接
前端路由ajax,前端路由实现方法
weixin_35101659的博客
08-06 454
一、什么是前端路由在web开发的过程中,路由的使用是必不可少的,这里的路由不是指我们日常生活中的路由器,但是实现原理基本相同,它代表一个url与相应处理程序的影射关系,用户在输入要访问的url之后,路由会解析url中的路径,之后根据映射表中的映射关系查找相应的预设函数,并将结果返回给用户,以此完成一次操作。前端路由不同于传统路由,它不需要服务器来进行解析,而是通过一个hash函数或者H5提供的hi...
30.ajax路由分离模块式开发步骤
咖喱鸡块的博客
09-28 1192
ajax路由分离模块式开发步骤 1.首先创建一个apiAjax.js文件 2.在ApiAjax文件中,创建一个Ajax的函数对象,并且定义好它的公用的路径地址,用this.XXX表示 方便在其他文件中引入 New()新的方法,this指向当前 3.当在其他文件需要跳转发送ajax请求的时候,会向后台传输数据,在apiAjax.js中写好每个需要向后台发送请求的模块的传递数据的
ajax改变路由,通过AJAX路由
weixin_30954817的博客
08-05 435
我有一个ajax请求处理表单字段的验证(登录注册忘记密码) . 在它的成功场景中,我希望它路由到另一个页面,但是当我使用 Redirect::route('name'); 作为从控制器的返回时,它用200完成请求并生成另一个GET请求,该请求仅返回html作为响应并且不路由到其他页面 .AJAX$('form[data-remote]').on('submit', function (e) {va...
通过ajax提交到url路由
weixin_30445169的博客
10-22 242
$regBoxform.find('button').on('click', function(){ /*通过ajax提交请求*/ $.ajax({ type:'post', /*用post 方式提交*/ url:'/user/register', /*提交到api的指定路由路径*/ ...
路由路由
weixin_33827965的博客
10-02 118
  有两种方法! 无论哪种,和猫接的主路由总是不变! 只要改从路由的设置! 第一。从路由还是当路由用! 设置:路由A为主路由路由B为从路由! 假设你现在有两个路由 路由A 和 路由B 同时使用的是ADSL拨号上网。 首先,设置路由A的WAN口状态设置为PPPoE拨号状态,然后填入ADSL拨号的账号和密码。 然后,设置路由A的LAN口IP为192.168.1.1 LAN口的IP段为...
ajax-exercise
06-26
它具有三个特点: 提供随机财富 提供邮政编码的天气预报 处理点瓜 在整个应用程序中,您会发现 jQuery 的文档非常有用! 开始: 创建一个虚拟环境并将 Flask 安装到其中 运行服务器并查看索引页。 第 1 部分:...
Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar
09-02
第20章 ActiveRecord第三部分:对象生命周期 295 20.1 校验 295 20.2 回调 303 20.3 高级属性 308 20.4 事务 311 第21章 ActionController:路由与URL 317 21.1 基础 317 21.2 请求的路由 318 21.3 基于资源的路由 ...
ASP.NET MVC4架构实现与项目实战
01-27
【由于上传限制(本文件压缩后还有400M所以放到百度云盘中,...第3章 控制器 第4章 视图 第5章 HTML帮助器 第6章 模型 第7章 Ajax技术 第8章 单元测试与异常处理 第9章 安全机制 第10章 在线RSS阅读器 第11章 BBS系统
mvc3高级编程英文版
05-30
第3 章介绍如何从控制器操作中使用视图模板控制输出的可视化表示。除此之外,还 将全面地介绍ASP.NET MVC 3 中包含的新视图引擎—— Razor。 第4 章继续介绍MVC 模式的第三个元素:模型。本章中,您将会学习到如何...
vue路由跳转及其ajax请求,Vue Router路由守卫妙用:异步获取数据成功后再进行路由跳转并传递数据,失败则不进行跳转...
weixin_31762925的博客
08-05 1671
问题引入试想这样一个业务场景:在用户输入数据,点击提交按钮后,这时发起了ajax请求,如果请求成功,则跳转到详情页面并展示详情数据,失败则不跳转到详情页面,只是在当前页面给出错误消息。难点所在需要注意的是,这里并没有单独的接口用于判断用户是否通过校验,而是若用户通过校验,接口就直接返回了用户需要的详情信息,未通过校验则不会返回详情信息并报错。常见方案问题分析(一)用户点击按钮后直接跳转到详情页面,...
Web开发中 前端路由 实现的几种方式和适用场景
热门推荐
小北哥哥和北妈
07-04 5万+
浅析Web开发中前端路由实现的几种方式主题 Web开发故事从名叫Oliver的绿箭虾`说起,这位大虾酷爱社交网站,一天他打开了 Twitter ,从发过的tweets的选项卡一路切到followers选项卡,Oliver发现页面的内容变化了,URL也变化了,但为什么页面没有闪烁刷新呢?于是Oliver打开的网络监控器(没错,Oliver是个程序员),他惊讶地发现在切换选项卡时,只有几个XHR请求发
路由ajax实现的吗,怎么样通过Ajax技术实现页面无刷新?
weixin_42515561的博客
08-06 176
怎么样通过Ajax技术实现页面无刷新?ajax (ajax开发)AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现...
路由ajax实现的吗,ajax实现方式
weixin_32064437的博客
08-06 126
ajax实现方式 内容精选换一换华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用华为云服务。ajax实现方式 相关内容基于TBE DSL进行算子开发时,由于算子调度...
为什么ajax请求进不来后端路由_前端路由与vue-router小结
weixin_39916758的博客
12-05 275
1.什么是路由通俗地说就是网址;专业的说,就是每次GET或POST等请求在服务端有一个专门的正则配置列表,匹配到具体的一个路径分发到不同的Controller,进行各种操作最终将html或数据返回前端。2.为什么要用前端路由以往绝大多数的网站都是后端路由(多页面),它的好处是使页面在服务端渲染完毕再返回给浏览器,不用等待加载css和js,同时还对SEO(搜索引擎优化)友好等。但是缺点也很明显,就是...
基于AJAX的联级菜单三级,不使用PHP
最新发布
05-27
当用户选择第二个下拉列表的选项时,我们会发送另一个 AJAX 请求来获取与所选选项相关的第三个下拉列表的选项。 ```javascript function getThirdOptions() { // 清空第三个下拉列表 third.innerHTML = '请选择...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 路由与ajax(第三天) 960
  • 原生Ajax,jquery Ajax,axios Ajax,promise async语法, 351
  • nodemon热加载,npm,MVC(第四天) 233
  • 跨域资源共享CORS,MySQL 186
  • 学习node.js的第二天 176

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 跨域资源共享CORS,MySQL
  • 跨域,jsonp,oAuth
  • 原生Ajax,jquery Ajax,axios Ajax,promise async语法,
2020年7篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司怀化推广网站哪家好惠州关键词按天扣费价格霍邱网站优化软件价格乐山百度关键词包年推广扬州网站关键词优化哪家好崇左网站seo优化广东推广网站多少钱黄南网站开发哪家好商丘企业网站设计报价深圳网站推广方案南宁阿里店铺托管黑河至尊标王价格东莞网站seo优化多少钱布吉网站优化按天计费报价连云港优秀网站设计哪家好延安推广网站公司迪庆百姓网标王推广南山外贸网站设计汕尾seo网站优化价格嘉兴网站推广推荐惠州百度网站优化价格林芝模板制作多少钱昌吉建网站哪家好鸡西网站优化按天计费报价安庆网站推广方案报价宜春至尊标王哪家好钦州网站优化按天计费公司楚雄seo网站推广报价温州网站制作设计公司平顶山企业网站改版公司歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化