五年前,我曾分享过如何构建易于扩展的前端统计脚本,感兴趣可以进行关联阅读。...{"code": 0, data:"soulteary"}'; } 接着使用 Nginx map 指令,和 Nginx 中的条件判断,过滤非 POST 请求的日志记录,以及拒绝处理非 POST 请求。...http://127.0.0.1/internal-api-path; } ... } 再次使用 curl 请求,会看到日志已经能够正常解析,不会出现两条日志了。...\"value1\", \"key2\":\"value2\"} 同时,也不会再记录任何非 POST 请求,使用 POST 请求的时候,会提示 405 错误状态。...curl 执行之前的命令,继续模拟纯接口调用,则会发现出现了 405 错误响应,这是因为我们的请求中不包含 origin 请求头,无法表明我们的来源身份,在请求中使用 -H 参数补全这个数据,即可拿到符合预期的返回
五年前,我曾分享过如何构建易于扩展的前端统计脚本,感兴趣可以进行关联阅读。...{"code": 0, data:"soulteary"}'; } 接着使用 Nginx map 指令,和 Nginx 中的条件判断,过滤非 POST 请求的日志记录,以及拒绝处理非 POST 请求...http://127.0.0.1/internal-api-path; } ... } 再次使用 curl 请求,会看到日志已经能够正常解析,不会出现两条日志了。...\"value1\", \"key2\":\"value2\"} 同时,也不会再记录任何非 POST 请求,使用 POST 请求的时候,会提示 405 错误状态。...curl 执行之前的命令,继续模拟纯接口调用,则会发现出现了 405 错误响应,这是因为我们的请求中不包含 origin 请求头,无法表明我们的来源身份,在请求中使用 -H 参数补全这个数据,即可拿到符合预期的返回
在写一个简单的浏览器访问客户端代码的时候突然遇到了这个错误,那么我就来讲讲这个错误为什么发生 首先我们来看看浏览器报错的信息 ?...Apache Tomcat/8.5.31 405 Method Not Allowed 请求行中指定的请求方法不能被用于请求相应的资源。...鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。...HTTP Status 405 – Method Not Allowed 出现错误的原因 1.在继承HttpServlet类的时候没有实现其doGet或者doPost方法 2.调用了父类的doGet或则...doPOST方法, 因为我们平常操作都是直接使用IDEA的自动生成,而自动生成都是直接调用父类的方法,这点要尤为小心 解决方法 1.复写doGet和doPost方法 2.取消对父类方法的调用 如果觉得我的文章对你有所帮助的可以点赞收藏呀
封装功能 首先是功能上的封装,我们新建一个js文件,我这里叫request.js。 首先我们先导入axios和qs两个模块。 为什么要使用qs模块? ajax请求的get请求是通过URL传参的(以?...在开发中,发送请求的入参大多是一个对象。在发送时,如果该请求为get请求,就需要对参数进行转化。...// 对响应错误做点什么 return Promise.reject(error); }); 那我们还是使用箭头函数来写,这里我先给出所以代码,在分段解析。...如果有error对象,并且error对象有response参数时,我们此时就会确定这是请求状态错误。 为什么呢?因为error.response中的status会返回浏览器爆出的状态码。...这一层请求信息的封装也就好了,目的是补充配置。 封装请求方法 我们在封装一次调用方法,便于调用请求。 创建一个js文件,我这是api.js。
文件 三、封装axios实例 —— request.js 四、封装请求——http.js 五、正式封装API,用于发送请求——api.js 六、如何在vue文件中调用 结语 前言 在做vue中大型项目的时候...此文主要讲在vue-cil项目中如何封装axios,封装请求,封装公共的api,页面如何调用请求。...关于代理可能出现的问题,可以查看我的另一篇文档VueCil代理本地proxytable报错的解析; tips:如果报错服务器连接失败,是因为下面配置的代理地址是错误的,是我写的假的,需要替换成自己的服务器...} } 结语 以上就详细介绍了,在vue-cil项目中 如何封装axios,封装请求,封装公共的api,配置多个接口,页面如何调用请求等问题,都是亲测有用的~ 但是这种封装方法的话,更适合大中型项目...补充: 关于代理的配置及若出现配置代理报错404的问题,可以参考我的文章:代理的配置来解决; vue3学习:vue3.0中如何使用router路由、vuex、element-plus 发布者:全栈程序员栈长
:当发生跨域条件时候,览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。...API可能只用到了POST和GET请求,而Access-Control-Allow-Methods这个请求响应头跨域默认只支持POST和GET,当出现其他请求类型时候,同样会出现跨域异常。...比如,我这里将请求的API接口请求方式从原来的GET改成PUT,在发起一次试试。...报错内容也讲的很清楚,在这个预请求中,PUT方法是不允许在跨域中使用的,我们需要改下Access-Control-Allow-Methods的配置(缺什么加上么,这里我只加了PUT,可以自己加全一点),...://localhost:59200; } } 最后,这是一篇解决跨域遇到问题解决问题的过程,如果认真看完了,我相信应该都能很容易的理解,并且在实际使用中自己解决该问题,希望能帮助到大家
映射HTTP响应状态码 6.1. 未映射的请求 6.2.有效的映射请求 6.3. 客户端错误 6.4. 使用@ExceptionHandler 7. 附加的Maven依赖项 8. 总结 1....概览 本文展示了如何在Spring中配置REST——控制器和HTTP状态响应码、有效负载编排和内容协商的配置。 2....如果没有必须通过直接引用注入或操纵控制器的实例,那么我宁愿不将其声明为公共的。 请求映射非常简单——与任何控制器一样,映射的实际value以及HTTP方法用于确定请求的目标方法。...客户端错误 在客户端错误的情况下,自定义异常被定义并映射到适当的错误代码。 简单地从Web层的任何位置抛出这些异常,将确保Spring将相应的状态代码映射到HTTP响应上。...在本系列的下一篇文章中,我将重点讨论 API的可发现性、高级内容协商以及其它的处理和传输资源状态的方式。 这篇文章的所有代码都可以在Github上找到。
当发生跨域条件时候,览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。...情况4: 比较早期的API可能只用到了POST和GET请求,而Access-Control-Allow-Methods这个请求响应头跨域默认只支持POST和GET,当出现其他请求类型时候,同样会出现跨域异常...比如,我这里将请求的API接口请求方式从原来的GET改成PUT,在发起一次试试。...报错内容也讲的很清楚,在这个预请求中,PUT方法是不允许在跨域中使用的,我们需要改下Access-Control-Allow-Methods的配置(缺什么加上么,这里我只加了PUT,可以自己加全一点),...都加上后,问题就解决了,这里报405是我服务端这个接口只开放了GET,没有开放PUT,而此刻我将此接口用PUT方法去请求,所以接口会返回这个状态码。
出现如下报错: Tomcat return http status error: 405, Reason Phrase: Method Not Allowed: ?...HTTP 405解读 HTTP Error 405 Method not allowed 此HTTP协议定义在web浏览器上的特定URL资源(由客户端发起)上要执行action动作的方法。...有下面几种方法: options 要求得到一个HTTP方法列表,所请求URL上的东西可以对这些HTTP方法做出响应。。 get 要求得到所请求URL上的资源或文件,例如网页或者图片等。...所有这有点像GET,但是相应中没有体。它能提供所请求URL的有关信息,但 是不会真正返回实际的那个东西。...修复405错误 一般而言,405报错都是由于POST请求。 所有的405错误,都可以追踪到web 服务器的配置以及调用web服务器配置的配置,以及网页安全的控制等。
对于Rest Api中要如何处理业务错误这个事情,这并不算是一个非常大的问题。事实上,对大多数架构师来说,可能很多人都不会太在意这个点。...1. http响应码 我们都知道,http响应码是有它的标准含义的,一般而言,笔者建议遵守这个标准,http响应码从1XX到5XX都有其特定的意义,但在Rest Api中,使用最多的可能还是以2XX和4XX...如何响应业务错误 在这之前,笔者也没有特别注意到这个点,统一使用200响应码,再以业务状态码这种方式结合使用。...笔者的设计 基于上述原则,笔者对此的新的设计原则如下: 规则1:2XX仅表示业务上成功处理请求 规则2:使用4XX来表示业务错误,4XX中有特别设计的,使用特别设计的,比如权限不足,使用403。...当然,也有不是这样做的,比如instagram的API,它是通过meta字段来区分业务上的正确与错误 ? 你是如何想的?,见仁见智吧
前端使用Vue,后端则是使用ASP.NET WebApi。在搭建完成前后端框架后,进行接口测试时发现了一个前后端分离普遍存在的问题跨域(CORS)请求问题。...因此就有了这篇文章如何启用ASP.NET WebApi 中的 CORS 支持。...一、解决Vue报错:OPTIONS 405 Method Not Allowed问题: 错误重现: index.umd.min.js:1 OPTIONS http://localhost:1204/api.../Login/ShopKeeperLogin 405 (Method Not Allowed) 解决方法: 在项目Global.asax中添加对OPTIONS方法的处理: /// <...允许所有来源,HTTP方法,请求标头跨域: 在Web.config中找到system.webServer标签里面添加如下配置: <customHeaders
理解和使用内容协商 我们的开发者在发送一个 REST API 请求的同时,根据应用场景,针对相同的资源,可能会期待不同的返回形式。 比如,我希望根据用户客户端语言,同一个资源的内容可以返回不同的语言。...我们确实可以在 HTTP 的相应内容中描述是否成功,如果出错是因为什么, 然而, 这就意味着用户需要进行内容解析,才知道执行结果和错误原因。...415 不支持的媒体类型 , 请求的格式不受请求页面的支持。 500 内部服务器错误。 回页首 使用 HTTP 头处理缓存和并发 缓存和并发处理,从来是大型软件系统设计中的重要组成部分。...使用 HTTP 头进行缓存处理 在 REST 的构架中,我们除了在与后台的数据交换中,需要有一个良好的缓存机制外,针对 REST API 请求都是在远端用 HTTP 发起这一特点,还需要为网络缓存进行更多考虑...文档服务: 是否由于 API 持续更新,使得客户端连接不同版本服务的时候疲于奔命?尝试着把你的 API 定义规范成 XML 文档,这样客户端很容易理解当前服务可以提供哪些功能,以及如何使用这些功能。
背景 一天下午,正认真的上(摸)班(鱼)呢,一个前端开发同事找到运维团队“后端服务是不是有什么异常啊,为什么我的访问不通呢?”“接口地址拿来~”运维工程师使用本地的postman进行调用。...在预检中,浏览器发送的头中标示有 HTTP 方法和真实请求中会用到的头。...API 发出所谓的预请求,并询问允许的选项:谁可以调用 API 以及可以发出什么类型的请求 API 发送带有此类选项的响应,并且(可选)包括浏览器应缓存这些依赖设置 如果前端应用程序及其尝试发出的请求位于允许列表内...,则浏览器会允许其通过 否则,请求将被拒绝,并出现我们在本文开头看到的错误 我们启动一个后端和前端来模拟问题: 后端的Go代码 package main import ( "encoding/json.../index.html") } 运行这段代码,前端html将运行为http://localhost:3333 使用浏览器访问,得到如下页面,打开F12调试,在文本框中输入书名,点击Add: 得到了与文章开始时类似的报错
Apigee公司(Apigee.com)有人在博客上整理了一篇值得一看的关于如何表述restful错误情况文章(http://blog.apigee.com/detail/restful_api_design_what_about_errors...我认为在使用http客户端时,处理响应的流程如下: 要捕获住所使用的http客户端组件声明的所有异常。...所以在“存在性”维度,以结果和未来导向的细分情况如下: 1,资源不会再出现在当前位置(uri) 1.1,资源当前位置已知:即已知的永久迁移。使用301状态码。...2.2.2,资源未曾出现过:类似于未出生。这里仅罗列一下细分情况。 这里“上传文件”的例子看起来有点太刻意了,但这里关键是说你的API使用自定义的错误码,可以表达更丰富的错误信息。...url指向的目标网页应该有完整的错误详情以及解决方案,帮助他们解决问题。 这可能是最重要的属性,因为你可以在目标网页上更好地提供信息。
HTTP状态码一共分为5个级别: 1xx,属于信息性的状态码。Web API并不使用1xx的状态码。 2xx,意味着请求执行的很成功。...not allowed,当尝试发送请求到资源的时候,使用了不被支持的HTTP方法时,就会返回405状态码; 406 - Not acceptable,这表示API消费者请求的表述格式并不被Web...错误和故障 系统时不时的会出现一些问题,这些问题可以划分为两类:错误和故障。 错误 Errors 错误通常是由API的消费者引起的。...API消费者请求时传递的数据是不合理的,这时API就会正常的将其拒绝。例如,请求的凭证是不合理的,或者请求的参数不合理等等。 这些就是HTTP 4xx错误。...错误并不会影响API的可用性。 故障 Faults 故障是指,针对一个合理的请求,API无法返回它的响应。 换句话说就是API引起的问题。 这些是HTTP 5xx错误。
因为现在都用的spring配置的,很少用到servlet了,今天想写一个demo,结果报了一个405的错误…………………真的是打扰了……. 405概念 请求行中指定的请求方法不能被用于请求相应的资源...鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。...其实就是说你访问了不是你能访问了,例如你使用post方法访问静态资源,Apache、IIS、Nginx等绝大多数web服务器,都不允许静态文件响应POST请求 那么我的这个问题是在哪里呢?...image.png super.doGet(req,resp);我忘记注释掉了……………………… 以前只知道要注释掉,但不知道是为什么,今天我点进去看了一下里面是怎么写的………. protected void...} } 你看,这里,只要http 协议是1.1就返回405,不然就返回400,反正就是直接报错….
说了这么多,我们为什么要使用RESTful架构?使用RESTful架构有什么好处?...URI 应该将API部署在专用域名之下:https://api.example.com 不用大写 用中杠-不用下杠_; 参数列表要encode; URI中不应该出现动词,动词应该使用HTTP方法表示,但是如果无法表示...,也可使用动词,例如:search没有对应的HTTP方法,可以在路径中使用search,更加直观; URI中的名词表示资源集合,使用复数形式; 虽然/在URI中表达层级,但是避免为了追求REST导致层级过深...加入速度设置之后,应该提示用户,至于如何提示标准上没有说明,不过流行的方法是使用HTTP的返回头。...在进行分页查询时可以返回下一页的URI,如果没有说明服务器已经取到最后一条数据了,客户端可以减少不必要的请求以及URI的构造,建议在分页的情况下使用。
HTTP 状态代码或响应码共分为五类,分别是 1×× 提示信息,2×× 成功,3×× 重定向,4×× 客户端错误,5×× 服务器错误。 本文包含了完整的 HTTP 状态码以及相应的描述信息。...当我们进行 API 测试时,通常首先会检查 API 调用返回的响应的状态码。这就要求我们必须熟悉那些最常见的 HTTP 状态码,以便我们能够更快地识别问题。...204-无内容,状态代码指示服务器已成功完成请求,并且在响应有效载荷主体中没有要发送的附加内容。...405 不允许的方法 405(Method Not Allowed)状态代码指示在请求行中接收的方法被源服务器知道,但不被目标资源支持。...请求的范围不满足 417 预期失败 418 我是个茶壶,超文本咖啡罐控制协议,但是并没有被实际的HTTP服务器实现 421 错误的请求 422 不可处理实体 423 锁定 424 失败的依赖关系 426
而REST的核心原则是将你的API拆分为逻辑上的资源。这些资源通过http被操作(GET ,POST,PUT,DELETE)。 那么我应该如何拆分出这些资源呢?...文档中应该有关于何时弃用某个API的时间表以及详情。使用邮件列表或者博客记录是好方法。 版本化 在API上加入版本信息可以有效的防止用户访问已经更新了的API,同时也能让不同主要版本之间平稳过渡。...strip使用的方法就很好:它的url里面有主版本信息,同时请求头俩面有子版本信息。这样在子版本变化过程中url的稳定的。变化有时是不可避免的,关键是如何管理变化。...时间戳保存的信息很多,但是也包含了很多不必要的信息,用户只需要知道还剩几秒就可以再发请求了这样也避免了clock skew问题。 有些API使用UNIX格式时间戳,我建议不要那么干。为什么?...HTTP 已经规定了使用 RFC 1123 时间格式 鉴权 Authentication restful API是无状态的也就是说用户请求的鉴权和cookie以及session无关,每一次请求都应该包含鉴权证明
Response可以根据客户端的请求render合适的content type: return Response(data) 我摘取了rendered_content()函数的代码: @property...它们提供了一些新功能,比如: 检查请求是Request对象 添加上下文到Response对象 返回请求错误如405 Method Not Allowed 当request.data格式有误时,抛出ParseError..._204_NO_CONTENT) 改动点有这些,添加了@api_view,如: @api_view(['GET', 'POST']) 使用了状态码标识符,如: status.HTTP_404_NOT_FOUND...DRF提供了可视化的API HTML文档,把API URL在浏览器中打开即可看到: ?...东方说 最近测试开发和业务测试的话题频频出现在TesterHome论坛上,讨论激烈,我觉得从公司的角度来说,只会关注员工的产出有没有给公司带来价值,无论技术多厉害,不能创造价值终究是会优先被裁的。
领取专属 10元无门槛券
手把手带您无忧上云