【nodejs】服务器端抛出异常Error: bad content-type header, no content-type原因及解决办法

2023-05-16

引出

最近写了个网站,然后放到服务器上之后没两天就开始时不时的抛出异常Error: bad content-type header, no content-typeunknow content-type: text/html,异常抛出后没有接收服务器就停止运行,即使我做了异常处理,但该异常依然会每天时不时的出现,甚至错误日志都被其刷屏。。

原因

被该异常搞得苦不堪言之后终于下定决心解决它,然而疯狂百度之后依旧一无所获,只能硬看代码硬改bug了

首先正常的浏览器客户端发送的请求都会有content-type,即使不显示添加浏览器也会根据内容为其添加,所以no content-type八成就是爬虫了,然后我输出res的请求头果然是百度爬虫。。。

即使客户端没有请求头属性content-type也不至于导致服务器抛出异常呀,以前写的网站也没有出现过这样的问题。。。

然后我用测试工具:Postman,逐个路由测试终于发现了问题:express-formidable模块

express-formidable模块是用于处理post请求的,当请求没有content-type属性或者content-type属性不是post请求指定类型时就会抛出Error: bad content-type header, no content-type和unknow content-type: text/html异常

解决方法

目前为止我也没有找到比较好的解决方法,我这里经常抛出该异常是因为我在根目录中引入了express-formidable模块处理请求,所以导致了只要有没带content-type属性的爬虫访问就会抛出异常

我的办法是将需要使用express-formidable模块的功能单独写一个路由,不要将其放置到根目录路由中,但是这样爬虫爬取单独写好的路由时还是会抛出no content-type,所以在该路由中再添加一个顶层中间键,判断一下是否有content-type属性,没有就手动为其添加(添加时要添加post请求的类型如application/x-www-form-urlencoded等否则会抛出unknow content-type: text/html)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【nodejs】服务器端抛出异常Error: bad content-type header, no content-type原因及解决办法 的相关文章

  • windows下使用python生成安装包(可实现安装和卸载等)

    在实际生活中 xff0c 每个人都是通过使用安装包的方式对软件进行安装和卸载 xff0c 这样才能让每个人都不需要懂代码就能使用我们编写的软件 那么python编写的软件应该怎样实现这个过程尼 xff1f 下面就进行详细的讲解 一 使用py
  • idea翻译插件

    平常在使用idea工具开发项目或者是追源码时 xff0c 遇见很多不认识的代码可能需要复制然后粘贴到百度翻译很麻烦 xff0c 今天给大家带带来一个idea翻译插件 xff0c 安装方便 xff0c 使用方便 xff0c 还不收费 xff0
  • Java设计模式之模板模式

    目录 模板模式的介绍 模板模式的案例 模板模式的优缺点 总结 模板模式的介绍 定义一个操作中算法的骨架 xff0c 而将一些步骤延迟到子类中 xff0c 模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤 通俗易懂的话来说
  • Java设计模式之装饰器模式

    装饰器模式是什么 装饰器模式是指给一个类增强一些方法 xff0c 对其做一些包装 xff0c 但是不会影响改变原本类 解决了什么问题 xff1a 假设有一个炸鸡接口 xff0c 定义了一个制作炸鸡的方法 xff0c 麦当劳和肯德基和德克士对
  • Spring boot+Spring security+JWT实现前后端分离登录认证及权限控制

    借鉴文章 xff1a Springboot 43 Spring Security 实现前后端分离登录认证及权限控制 I am Rick Hu的博客 CSDN博客 springsecurity前后端分离登录认证 最近一段时间 xff0c 公司
  • 从源码理解SpringBootServletInitializer的作用

    写在前面 xff1a 各位读友们好 xff0c 最近已经很久没有更新文章了 xff0c 并不是觉得写文章没意思之类的 xff0c 笔者很希望能在 34 乱七八糟 34 的互联上做一些开源 xff08 能力有限 xff0c 先做现有技术和思想
  • 深入理解Linux内核select多路复用原理

    写在前面 xff1a 本文以Linux2 6 0的内核源码进行讲解 xff0c 使用x86 32位机讲解 多路复用原理 讲多路复用的原理 xff0c 那么一定先要讲没有多路复用的弊端 传统的阻塞式 xff0c 进程一旦io读写就开始阻塞 x
  • Spring Cloud组件源码之LoadBalancer源码分析

    34 Spring 到底是春天的来临万物复苏 xff0c 还是春转夏的干燥又炎热呢 xff1f 34 Spring的来临让JavaEE走向了另一个高度 便捷的开发 xff0c 完美的生态 物极必反 xff0c 学习Spring的成本越来越低
  • Spring Cloud LoadBalancer自定义负载均衡策略

    由于原有的负载均衡组件Ribbon停止维护 xff0c 而完美的Spring生态怎能允许缺少负载均衡组件呢 xff1f Spring Cloud官方自己造出了Spring Cloud LoadBalancer来代替原有的Ribbon 由于是
  • JVM Shutdown Hook 机制原理以及源码分析

    写在前面 最近看众多框架源码的时候都看到使用到了Shutdown Hook机制 比如下图 xff1a SkyWalking Spring Tomcat等等框架 xff0c 几乎只要是Java层面的框架都会使用到此机制 所以 xff0c 借用
  • 【Jeston Orin】Orin nano 8G模块使用官方系统包生成标准烧写系统测试

    大家好 xff0c 我是虎哥 xff0c GTC 2023上 xff0c NVIDIA正式推出了面向边缘AI的新一代入门款开发套件 xff0c Jetson Orin Nano Developer Kit 虽说只是入门套件 xff0c 但据
  • Ubuntu(Linux)中如何放大终端字体

    Ubuntu中如何放大终端字体 Shift 43 ctrl 43 43
  • 【大数据】第三章:详解HDFS(送尚硅谷笔记和源码)

    什么是HDFS HDFS是 xff08 Hadoop Distributed File System xff09 的缩写 xff0c 也即Hadoop分布式文件系统 它通过目录树定位在分布式场景下 在不同服务器主机上的文件 它适用于一次写入
  • CSP第一次模拟 A 咕咕东的奇遇

    题目描述 xff1a 有一个圆环 xff0c 由字母表中字母首尾相接组成 环上有一个指针 xff0c 最初指向a 每次可顺时针或逆时针旋转一格 例如 xff1a a顺时针转到b xff0c 逆时针转到z 现在有一个字符串 xff0c 求需要
  • WEEK 5 B TT's Magic Cat

    题目 xff1a Thanks to everyone s help last week TT finally got a cute cat But what TT didn t expect is that this is a magic
  • WEEK 11 E 选做题1 东东与 ATM

    题目 一家银行计划安装一台用于提取现金的机器 机器能够按要求的现金量发送适当的账单 机器使用正好N种不同的面额钞票 xff0c 例如D k xff0c k 61 1 2 N xff0c 并且对于每种面额D k xff0c 机器都有n k张钞
  • Vue3.0的新语法糖-script setup

    lt script setup gt 是vue3中新引入的语法糖 xff0c 目的是简化使用Composition API时冗长的模板代码 lt script setup gt 是在单文件组件 SFC 中使用组合式 API 的编译时语法糖
  • MODIS数据下载——CSV模式直接下载hdf文件

    前提 xff1a 经常下载MODIS数据就会发现 xff0c NASA官网经常不干活 NSAS官网经常会有订单归档困难的情况 xff0c 不能通过订单批量下载 xff0c 这样就无法直接下载选定波段 经过投影与转tif处理后的数据了 订单批
  • python字符串切片及常用方法

    一 切片 切片 xff1a 指对操作的对象截取其中一部分的操作 xff0c 字符串 列表 元组都支持切片操作 语法 xff1a 序列 开始位置下标 结束位置下标 步长 xff0c 不包含结束位置下标数据 xff0c 步长为选取间隔 xff0
  • wsl2、Ubuntu、图形界面 的安装与问题解决

    关于WSL WSL是微软推出的windows的linux子系统 xff0c 目的就是为了在windows平台上更方便的运行 linux 相比于VMware这样的虚拟机产品 xff0c WSL有许多优势 xff1a 方便 WSL让Linux终

随机推荐