首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

input回车后页面提交导致出现HTTP 错误 405.0 - Method Not Allowed

前些时间在做一个搜索功能时发现一个比较有意思的现象,场景是这样的:一个模态窗口中是一个订单列表,页面的顶部有若干个状态筛选框和一个搜索关键字输入框,当焦点在关键字输入框时按回车,本来是对input的keyup...事件做了监听,当发现是按了回车键时便自动提交搜索请求的,但输入关键字后按回车时页面竟然跳转了,并且出现“HTTP 错误 405.0 - Method Not Allowed无法显示您正在查找的页面,因为使用了无效方法...(HTTP 谓词)”的错误,非常纳闷。...按照错误信息及现象(页面跳转了)来看,应该是因为触发了页面提交了,但事实上,当在keyup事件里面alert时,根本还没有执行到keyup事件里面去就已经跳转了。...自动提交的动作本身浏览器默认事件绑定的,按键盘的操作就是keyup和keydown,我原本的按键监听是keyup事件里写的,所以把keydown事件重写,然后终止默认事件执行就OK了。

1.8K10

Node.js—Express使用、Express 路由 、Express 中间件、托管静态资源、使用 Express 写接口、node.js链接sqlite数据库

因此,存放静态文件的目录名不会出现在URL,就比如寻找静态资源时,就没有带上public文件目录名。... Express ,路由指的是客户的请求与服务器处理函数之间的映射关系。...()函数后不要再写额外的代码 连续调用多个中间件时,多个中间件之间,共享req和res 对象 监听 req 的 data 事件 中间件,需要监听req对象的data事件,来获取客户发送到服务器的数据...// 定义变量,用来储存客户发送过来的请求体数据 let str = '' // 监听 req 对象的 data 事件(客户发送过来的新的请求体数据) req.on('data',(chunk) =...结语 保持热爱,永远都在前进的路上❤️

25110

nodejs作为中间层的实践「详细介绍」

nodejs的出现为前端行业带来了无限的可能性,让很多原来只负责客户开发的同学也慢慢开始接触和使用服务器技术....但是后端经常提供后端的数据逻辑,在前端还需要去处理这些数据逻辑。...我们可以中间层做接口转发,转发的过程做数据处理。...) => { // todo 处理数据 res.send(data); }) }) 页面性能优化 和 SEO 有点时候我们做单页面应用,经常会碰到首屏加载性能问题,这个时候如果我们接了中间层...日志操作 系统没有日志,相当于人没有双眼.日志可以帮助我们发现分析定位线上系统出现错误.另外通过日志数据也可以进行统计计算得出某些结论和趋势. node层能够承担起管理日志的功能,以接口访问日志为例

1.9K00

Node.js学习笔记——Express、路由、中间件、接口跨域解决方案详解(附实例)

,对外提供资源访问路径,目录名不会出现在 URL 托管多个静态资源目录 访问静态资源文件时,express.static() 函数会根据目录的添加顺序查找所需的文件,如下同名先访问public文件夹...nodemon app.js 2.Express 路由 广义上来讲,路由就是映射关系 Express ,路由指的是客户的请求与服务器处理函数之间的映射关系 Express 的路由分 3 部分组成...事件 来获取客户发送到服务器的数据。...如果数据量比较大,无法一次性发送完毕,则客户会把数据切割后,分批发送到服务器。...定义要发送到客户的数据对象 const scriptStr = `${funcName}(${JSON.stringify(data)})` // 3.

3.3K20

Express(一) ——简单入门

下面的例子,当客户以GET方法请求/时就会调用处理函数 app.get("/", (req, res) => { res.send("Hello World!"); }); // 4....todo) { // 任务id不存在 return res.status(404).end(); // 需要return阻止代码继续往下执行,否则会出现发送404又发送200...todo) { // 任务id不存在 return res.status(404).end(); // 需要return阻止代码继续往下执行,否则会出现发送404又发送200...(不过,也可以结束的同时发送响应) res.send() 发送各种类型的响应。 4.1 res.end() 结束响应流程。用于没有任何数据的情况下快速结束响应。...参数可以是 buffer 对象、字符串、对象、数组 发送给服务时,会自动发送更多的响应报文头,包括 Content-Type: text/html;charset=utf-8,所以中文不会乱码 res.send

3.5K20

Express中间件

基于这样的特性,我们可以在上游中间件,统一为req或res对象添加自定义的属性或方法,提供给下游的中间件使用。 客户发起任何请求,到达服务器后,都会触发的中间件,叫全局生效的中间件。...new Error('服务错误') res.send('home=') }) //定义错误级别的中间件, app.use((err,req,res,next)=>{ console.log('...})) // 创建路由 app.post('/',(req,res)=>{ //服务器,可以使用req.body这个属性,来接收客户发送过来的请求体数据 // 默认情况下,如果不配置解析表单数据的中间件...require('querystring') const app=express(); //自定义解析表单数据的中间件 app.use((req,res,next)=>{ // 1,定义str字符串,存储客户发送过来的请求数据...end 事件 req.on('end',()=>{ // str存放的是完整的请求数据 console.log(str) // 解析成对象格式 const body= qs.parse

1.6K21

Vue项目中出现Loading chunk {n} failed问题的解决方法

但是这个问题的根本原因没有被找到,因为这个问题出现的偶然性太高了,而且有的手机上会出现,有的不会,用模拟器不会出现,用真机又会出现,不知道是网络原因还是webpack的bug。...这个问题出现概率比较小但是一旦出现就会导致页面崩溃,所以还是得解决,下面就贴出我的解决方案: 我的思路是既然找不到报错的原因那么尝试去捕获这个错误并做容错处理,有两种实现,一是服务捕获这个错误,一个是在前端捕获...服务实现 报错的原因是某些js bundle没有被找到,所以服务端接收到获取该js文件的请求时先判断该js文件是否存在,如果存在直接返回js文件,如果不存在则返回一个提示信息给前端,让前端处理。...当在渲染一个路由的过程,需要尝试解析一个异步组件时发生错误。...完全符合我们场景,所以onError方法我们实现如下代码: router.onError((error) => { const pattern = /Loading chunk (\d)+ failed

2.9K50

nodeJS之Express框架---中间件

Express框架,允许通过中间件的使用来调用各种第三方类库,这让我们的开发工作变得更为方便,也使得我们可以开发出各种更为强大的应用程序。 一个中间件是一个用于处理客户请求的函数。...当接收到一个客户请求时,首先将该请求提交给第一个中间件函数,每一个中间件函数内部封装一个next回调函数,一个中间件函数内部可以判断是否调用next回调函数来处理该客户请求。...自定义中间件 开发者自己编写的 自定义中间件 自定义中间件,其本质就是定义一个处理请求的函数,只是此函数除了有request和response参数外还必须包含一个next参数,此参数作用让中间件能够让流程向下执行下去直到匹配到的路由中发送响应给客户...(html); }); }); app.post('/sendPost',(req,res)=>{ // 服务器,可以使用 req.body 这个属性,来接收客户发送过来的请求体数据...,可以使用 req.body 这个属性,来接收客户发送过来的请求体数据 默认情况下,如果不配置解析表单数据中间件,则 req.body 默认等于 undefined 除了使用JSON.stringify

2.4K00

深入剖析nodejs中间件

nodejs的出现为前端行业带来了无限的可能性,让很多原来只负责客户开发的同学也慢慢开始接触和使用服务器技术.虽然nodejs带来了很多的好处,但是它也存在自身的局限性.和那些传统老牌的编程语言相比...Server层直接通信,中间层的加入意味着浏览器和Server层之间额外添加了一层.原来客户端直接向Server发送请求,Server层收到请求后经过计算处理将结果返回给浏览器.如今浏览器将请求发送给...= await getOnline(); //获取线上数据 const offline_data = await getOffline(); //获取线下数据 res.send(dataHanlder...秒钟.下一次相同的用户再访问时就会将value自增1.最后的效果就达到了5秒内调用接口的次数超过20次便拒绝访问.日志操作系统没有日志,相当于人没有双眼.日志可以帮助我们发现分析定位线上系统出现错误....res.send(list);//将结果返回给客户})结尾中间层另外还可以做很多其他事情,比如监控、鉴权和服务器渲染(ssr).这部分由于内容比较多可以单独成章,网络上也有大量如何实践的文章,可搜索查阅学习

2.8K20

Express 框架的特点、使用方法以及相关的常用功能和中间件

定义路由 Express ,路由用于定义客户请求的路径与服务器的处理逻辑之间的映射关系。...;});上述代码,我们使用 app.get() 方法来定义一个 GET 请求的路由。当客户请求根路径 '/' 时,服务器将会发送一个包含字符串 'Hello World!' 的响应给客户。...路由参数 Express ,你可以通过路由参数来捕获客户请求的动态部分。路由参数用冒号 : 表示,其值会被传递给路由处理函数。...当前面的中间件或路由处理函数中出现错误时,将会跳转到该错误处理中间件函数,并将错误信息打印到控制台,并发送一个带有状态码 500 和字符串 'Server Error' 的响应给客户。...:app.get('/', (req, res) => { const data = { name: 'John' }; res.render('index', data);});上述代码,我们

37830

Express框架

网站维护公告,在所有路由的最上面定义接收所有请求的中间件,直接为客户做出响应,网站正在维护。...程序执行的过程,不可避免的会出现一些无法预料的错误,比如文件读取失败,数据库连接失败。...错误处理中间件是一个集中处理错误的地方。 ? 当程序出现错误时,调用next()方法,并且将错误信息通过参数的形式传递给next()方法,即可触发错误处理中间件。 ?...// throw new Error('程序出现未知错误...') // res.send('程序正常运行'); fs.readFile('./01.js', 'utf8',...(3000); console.log('服务器启动成功'); 2.5 捕获错误 node.js,异步API的错误信息都是通过回调函数获取的,支持Promise对象的异步API发生错误可以通过catch

1.8K20
领券