首页
学习
活动
专区
圈层
工具
发布

Ajax发送PUTDELETE请求时出现错误的原因及解决方案

.而其他的,根据单词并不能准确的知道他们想表达的意思.本文要讲的并不是HTTP协议,主要是分析一下发送Ajax(异步请求)的时候,为什么使用GET和POST方式发送可以接收到数据,而使用DELETE和PUT...方法无法发送请求的问题出现原因,当然还是要给出解决办法的....一般情况下,我们使用Rest风格的URI时,也就是使用HTTP协议请求方式的动词,来表示对资源的操作(GET(查询),POST(新增),PUT(修改),DELETE(删除)),常常会出现这个问题....使用Ajax发送PUT(修改)请求 我们测试使用的是一个更新方法,利用主键更新员工的信息,使用特定的PUT请求....方法和POST肯定是不一样的,最后只能是返回.于是就出现了上面的情况.

3.4K10

用ASP.NET Core 2.0 建立规范的 REST API -- DELETE, UPDATE, PATCH 和 Log

幂等性的核心概念可以理解为:"你可以发送多于一次的同样请求,但是不会对服务器造成额外的改变"。也就是说每次发送了DELETE请求之后,服务器的状态都是一样的。...PUT请求会发送到现有资源的URI上,如果资源不存在就返回404。 而POST用于创建资源,所以肯定不知道该资源的URI(是指GET的URI)。...报告验证错误信息: 返回的状态吗应该是 422 Unprocessable Entity (上文讲过,422表示请求的格式没问题,但是语义有错误,例如实体验证错误) 除了状态码之外,还需要把验证错误信息在响应的...这里返回状态码 422 是正确的选择,但是 422 要求请求的body的语法必须是正确的,不能是null,所以前面检查是否为null的代码还需要保留。...这里使用了500作为Log的EventId比较合适,毕竟是500错误。 我认为可以把Action里面返回500状态码的部分改成抛出异常。 然后我修改一下PATCH,以便能抛出一个异常: ?

2.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    小结HTTP状态码

    3xxs –重定向:你的请求被重定向到了其他地方。服务器收到了请求,但是有某种重定向。 4xxs – 客户端错误:客户端发生错误,导致服务器无法处理请求。...5xxs – 服务端错误:客户端发出了有效的请求,但是服务器未能正确处理请求。...备注:在web开发的工作中,我们都会使用封装好的库进行接口请求,而且浏览器的控制台网络中也不会出现这类状态码的提示(我没看到过?),所以这一大类基本不会接触到,了解一下即可。...410 Gone:被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。 422 Unprocessable Entity:请求格式良好,但是由于语义错误而无妨遵循。...这时候要检查下自己的传参格式语义有没有正确了。 429 Too Many Requests:用户在给定的时间内发送了太多请求(“限制请求速率”)。在DDOS攻击中就可以使用到了。

    1.5K20

    HTTP状态代码(各种错误代码集合)

    HTTP 状态码错误集合客户端错误(4xx)4xx 表示客户端发送的请求有问题。状态码英文描述中文解释400Bad Request请求语法错误,服务器无法理解。...405Method Not Allowed请求方法(GET、POST等)不被允许。406Not Acceptable无法提供符合请求头 Accept 要求的响应。...421Misdirected Request请求被发送到错误的服务器。422Unprocessable Entity请求格式正确,但语义错误(常见于 WebDAV 或 API 校验失败)。...423Locked资源被锁定(WebDAV)。424Failed Dependency依赖的请求失败(WebDAV)。425Too Early服务器不愿意处理可能被重放的请求。...服务器错误(5xx)5xx 表示服务器处理请求时出现问题。状态码英文描述中文解释500Internal Server Error服务器内部错误。

    2K10

    HTTP Request 422 Unprocessable Entity

    这种错误通常与请求中数据的验证失败或格式不正确有关。1. 常见场景422 Unprocessable Entity 常见于以下情况:提交的表单数据没有通过服务器端验证。...例如,某个字段缺少必填内容、字段格式不正确等。提交的数据格式正确,但某些业务规则被违反。例如,尝试创建重复的唯一标识符(如用户名或电子邮件)或提交的数据无法与其他数据项兼容。2. ...如何处理 HTTP 422 错误4.1 客户端处理客户端应该根据服务器返回的错误信息进行处理。例如,如果某个字段的格式不正确,客户端应向用户显示相应的提示,要求其提供正确格式的数据。...调试建议检查请求数据格式:确保请求的 JSON 或表单数据格式正确。查看错误消息:服务器通常会返回具体的错误消息,客户端可以根据这些消息向用户显示更有意义的错误提示。...总结HTTP 422 Unprocessable Entity 是因为请求数据语义错误导致的错误状态码。它通常出现在数据验证失败或业务规则冲突时。

    2.3K10

    架构必备「RESTful API」设计技巧经验总结

    补充一点,对于修改对象的部分内容的请求来说,我认为PATCH是减少请求包大小的一个好的方法,并且它也能很好的跟自动提交/自动保存字段配合起来用。...最初,我坚持认为封包数据是不必要的,HTTP协议已经提供了足够的“封包”来传递响应消息。 然而,根据Reddit上的回复所述,如果不封包为JSON数组,则可能会出现各种漏洞和潜在的黑客攻击。...但是,在某些语言(如Python)中返回一个空对象可能被认为是false,并且在开发人员调试程序的时候,这种情况并不容易发现。...我喜欢使用这些状态码: 对于数据错误 400:请求信息不完整或无法解析。 422:请求信息完整,但无效。 404:资源不存在。 409:资源冲突。...如果password字段太短,则返回422。 如果email字段不是有效的电子邮件,则返回422。 如果email已经被使用,返回一个409。

    2.7K30

    RESETful API 设计规范

    对不会返回响应体的成功请求进行响应(比如 DELETE 请求) 3xx 重定向 40x 客户端错误 400 Bad Request 请求异常,比如请求中的body无法解析 401 Unauthorized...此种情况下,服务器可以关闭连接以免客户端继续发送此请求。 如果这个状况是临时的,服务器 应该 返回一个 Retry-After 的响应头,以告知客户端可以在多少时间以后重新尝试。...如在只接受 JSON 格式的 API 中放入 XML 类型的数据并向服务器发送,都 应该 返回该状态码。...':message', // 错误的具体描述 'errors' => ':errors', // 参数的具体错误描述,422 等状态提供 'code' => '...// debug 信息,非生产环境提供 422错误码显示 HTTP/1.1 422 Unprocessable Entity Content-Type: application

    2.2K10

    先有猫,后有HTTP! | 多图预警

    当客户端给一个茶壶发送泡咖啡的请求时,茶壶就返回一个418错误状态码,表示“我是一个茶壶”。 500 服务器内部错误,很笼统的一个错误码。是服务端的同学最惧怕的错误码。...我想有个家,可是却一直在路上。 303 303表示这个请求对应的资源,存在另外一个URI。对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI。...308 308与301定义一致,唯一的区别在于,308状态码不允许浏览器将原本为POST的请求重顶到GET请求上。 4xx 400 400是服务端返回的,告诉客户端它发送了一条异常的请求。...意思是你传的不对,或者服务器资源有变. 417 又是一个偏门请求头Expect相关的状态码. 意思是这个请求参数不满足服务端的需要. 422 请求格式正确,但是由于含有语义错误,无法响应。...5xx 501 服务器不支持当前请求所需要的某个功能。 502 错误的网关 504 网关超时 506 是506错误是因为服务器没有正确配置。

    73110

    PHP 后端表单验证和请求处理

    消息保存成功后,我们通过 Response 对象发送响应给客户端。 异常响应处理 在测试表单请求处理逻辑之前,我们来介绍下对异常响应的处理。...这里,我们可以借助之前在 PHP 错误和异常处理教程中介绍的全局异常处理器来捕获程序中抛出的所有未处理异常,进行兜底处理。...,可以看到,如果捕获到的异常是 ValidationException 实例,则将响应状态码设置为 422,然后通过 Response 响应实例发送验证错误信息给客户端,对于其他异常,目前先统一返回 500...至此,我们就完成了 POST 表单请求的所有后端处理逻辑,在浏览器打开联系表单页面,如果输入了错误的手机号,会返回对应的验证错误消息: ?...如果所有表单数据都通过验证,则会看到消息发送成功提示: ? 当然,这里还有可以优化的地方,比如,在请求数据验证失败后,返回提交的请求数据填充对应的输入框,以免用户重新输入。

    3.5K30

    【RESTful】RESTful API 接口设计规范 | 示例

    query-string 发送给http服务器的数据,常用于对资源进行筛选操作 anchor 锚,链接 请求 格式:请求行、消息报头、请求正文 请求行格式: Method Request-URI HTTP-Version...其通过HTTP协议发送请求和接收结果时采用XML格式封装,并增加了一些特定的HTTP消息头,这些特定的HTTP消息头和XML内容格式就是SOAP协议。...状态码:当客户端发送一个请求时,服务端应当响应什么状态码 错误处理:如当发现客户端传入的参数有问题时,该返回什么样的状态信息。...422 Unprocesable Entity 当创建一个对象时,发生一个验证错误。...例如创建用户资源时需要用户名、密码,而前端只提供用户名字段,那么就要返回一个422 状态码,并返回错误信息:”密码不能为空“ 500 INTERNAL SERVER ERROR 服务器内部错误,此时服务端无法处理任何请求

    3.6K20

    使用node+express+mongodb实现用户注册、登录和验证功能

    url就是我们的访问域名,定义一个全局的,get就是请求方式,后面test就是请求名。在右边就可以看到我们返回的结果。要在server.js目录引入才能生效。 ?...请求,需要添加Content-Type: application/json,所有全局定义一个@json,然后只要是post请求的就直接tongg{{json}}使用 ?...所以不需要建立模型编写,登录时候,第一步肯定先判断用户是不是存在,如果用户不存在,直接返回状态码和错误信息,也不需要执行下一步,第二步用户名过了,接来下就是验证密码是否正确,通过compareSync验证面密码是否正确...,如果正确就返回,不正确的话也是返回状态码和错误信息,最后一步就是生成token,返回客户端,客户端可以通过token判断是哪个用户。...并引入 const jwt = require('jsonwebtoken') 像下面这些判断用户存在或者密码不正确,没有写好几行代码才能解决,推荐安装一个插件http-assert错误提示 const

    4K20

    记一次利用BLIND OOB XXE漏洞获取文件系统访问权限的测试

    由于没有GET参数可供测试,因此我决定向该/notifications服务端发送一个简单的,不指定任何内容类型(content-type)的POST请求进行探究,之后,在POST请求发出后,XML SOAP...语法体不再出现,而且整个请求响应的代码为200: ?...看来,貌似该Web应用端对POST请求能做出很好的响应,且不会抛出405的请求方法错误,所以我又构造定义了包含content-type: application/xml样式的XML语法内容,用它来作POST...接着,我又发送了一个定义的JSON请求(content-type: application/json),来测试服务端的具体响应: ?...尽管最后该漏洞被确认为一个重复报,但我还是想把它分享出来,我自己也从中学到一些判断服务端应用的经验。 一些有用的XXE Payload ?

    1.6K50

    花5分钟看这篇之前,你才发现你不懂RESTful

    当客户端可以切换到一个新状态的时候发送请求信息, 当一个或者多个请求被发送之后, 客户端就处于一个状态变迁过程中。每一个应用的状态描述可以被客户端用来初始化下一次的状态变迁。...连字符用中杠"-"而不用下杠"_" 正确使用 "/"表示层级关系,URL的层级不要过深,并且越靠前的层级应该相对越稳定 结尾不要包含正斜杠分隔符"/" URL中不出现动词,用请求方式表示动作 资源表示用复数不要用单数...410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。...POST请求用来新增一个资源 : POST请求向服务器发送数据,但是该请求会改变数据的内容(新添),就像数据库的insert操作一样,会创建新的内容。...PUT请求用来更新资源,PUT请求是向服务器端发送数据的, 与POST请求不同的是,PUT请求侧重于数据的修改 ,就像数据库中update一样,而POST请求侧重于数据的增加。

    1.8K41

    【Restful】你还不懂Restful API规范吗?

    400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。...410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。...500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。 返回结果 针对不同操作,服务器向用户返回的结果应该符合以下规范。...query: 查询字符串,为发送给服务器的参数,在这里更多发送数据分页、排序等参数。 对于RESTful API的URL具体设计的规范如下: 1.不用大写字母,所有单词使用英文且小写。...2.连字符用中杠"-“而不用下杠”_" 3.正确使用 “/“表示层级关系,URL的层级不要过深,并且越靠前的层级应该相对越稳定 4.结尾不要包含正斜杠分隔符”/” 5.URL中不出现动词,用请求方式表示动作

    1.9K40

    从100到511的这些数字,HTTP状态码背后的秘密你知道多少?

    POST改为GET307 Temporary Redirect严格重定向必须保持原请求方法建议:API开发中优先使用307,避免方法被意外转换303 See Other服务器发送此响应,以指示客户端通过一个...四、客户端错误(4xx):"是你的问题"这类错误码表示客户端发送的请求有问题,服务器无法处理。...400 Bad Request:请求"语法错误"含义:服务器无法理解请求格式常见原因:JSON格式错误参数缺失或格式不正确URL包含非法字符解决方法:检查请求头、参数格式和编码401 Unauthorized...422 Unprocessable Entity (WebDAV)请求格式正确,但由于语义错误而无法遵循。423 Locked (WebDAV)正在访问的资源已锁定。...五、服务器错误(5xx):"是我的问题"当看到这类状态码,通常不是你的错,是服务器"闹脾气"了。

    2.2K10

    Laravel API教程:如何构建和测试RESTful API

    虽然会一步步跟着做,但由于php还只停留在几年前的初学阶段,以及个人英语水平所限,有些新名词可能会理解有误,翻译过程中难免出现错误之处,还请各位能见谅与指出或有能力也可以直接点击上面的链接查看英文原文。...PUT动词的另一个要求是幂等,在这种情况下,基本上意味着您可以发送该请求1,2或1000次,结果将相同:数据库中的一个更新的资源。...当您必须返回分页的资源列表时很有用。 400: 错误的请求。无法通过验证的请求的标准选项。 401:未经授权 用户需要进行身份验证。 403:禁止 用户已通过身份验证,但没有执行操作的权限。...发送正确的404响应 如果您尝试获取不存在的资源,则会抛出异常,您将收到整个堆栈跟踪,如下所示: ?...('login', 'Auth\LoginController@login'); 现在,假设seeders 已经运行,当我们POST向该路由发送请求时,我们得到的是: $ curl -X POST localhost

    24.4K20

    HTTP状态码大全

    102 102 Processing102 将继续执行请求 2、 HTTP Status Code 2xx 成功状态 这一组状态码表明客户端的请求已经被服务器端成功接收并正确解析。...请求的语义错误 423 423 Locked423 当前资源被锁定 424 424 Failed Dependency424 当前请求失败 425 425 Unordered Collection425...接收到此状态时的默认操作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。...接收到此状态时的默认操作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。...如果没有其他适用的错误,或者不知道准确的错误或错误没有自己的错误代码,则发送 // System.Net.HttpStatusCode.BadRequest。

    4.2K40
    领券