问题标签 [http-status-code-204]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
33 浏览

http - 是否可以在 POST 请求中返回状态码 204?

是否可以(在某些情况下)在 POST 请求中返回状态码 204(无内容)?

提前致谢!

0 投票
0 回答
851 浏览

google-document-viewer - 谷歌文档查看器有时会返回空白屏幕(204 响应)

我们使用 Google 文档查看器查看 pdf 文件,有时会返回 204 - 一个无标题的文档。页面刷新后,内容被加载。我们尝试添加不能解决问题的嵌入标签。我们还注意到,当我们收到此 204 无标题响应时,缺少 https 安全性。我们还在 Google 论坛中发现很少有相同问题的线程,但我们没有获得任何解决方案。

我们的代码如下

有什么替代方案吗?我们已经尝试过“办公室查看器”,但我们也遇到了问题。

提前致谢!

0 投票
1 回答
217 浏览

http - TypeError:通过 HTTP2 调用 204(无内容)和 304(未修改)的网络请求失败(Chrome 中的 ERR_HTTP2_PROTOCOL_ERROR)

我们已从协议切换HTTP1.1HTTP2协议,并注意到一些请求失败。当服务器响应204304我们收到以下错误时:

TypeError:网络请求失败

Chrome 还在网络选项卡上显示以下错误:ERR_HTTP2_PROTOCOL_ERROR

0 投票
1 回答
52 浏览

express - 以原始方式多次发送相同的请求。有些返回状态码 204,有些还可以

我连续多次向同一个 url 发送 post 请求。一些请求返回 200 状态码,一些返回 204 表示没有内容。该请求更新了 mongo 数据库中的一些内容。我不知道这是否相关。什么可能导致这个问题?

我的 index.js:

注意:所有请求都转到此 URL“/epdatetrialsession”。当每个请求之间有 20 秒的间隔时,一切正常。但是当服务器每 2 秒左右收到一个请求时,有些请求会返回 204 状态码

0 投票
1 回答
39 浏览

jquery - 如果目录不存在,.htaccess 重写文件匹配条件

我有点沮丧,所以任何帮助将不胜感激。是否可以在 .htaccess 中捕获未找到的 404/目录以及 FilesMatch 块?

我创建了以下 .htacces 以将不存在的 .json 文件重写为 204 No Content (防止使用时出现错误$.getJSON):

我用以下文件/目录结构测试了一些东西:

当我请求一个不存在的配置文件 ( b/b.json) 时,.htaccess 有效,但是当我尝试加载一个不存在的目录 ( c/c.json) 的配置文件时,将返回 404 状态代码而不是所需的 204。

请求a/a.json给出 httpStatusCode 200(找到,这是正确的)

请求b/b.json给出 httpStatusCode 204(无内容,也正确,由 .htaccess 处理)

请求c/c.json给出 httpStatusCode 404(未找到)

我希望请求 c 也返回 204 No Content。我已经尝试过一些事情,比如使用<FilesMatch .*\/(.*)\.(json)$>和使用$1-d 而不是 -d从请求中捕获目录%{REQUEST_FILENAME},但这不起作用。

我还尝试使用 ErrorDocument 捕获 404 错误,仅适用于 .json 文件,但这不起作用。重定向将不起作用,并且将返回 404 statusCode。

我究竟做错了什么?任何想法如何抓住这个?

0 投票
0 回答
64 浏览

google-apps-script - Google 脚本,使用 urlFetchApp() 进行 PUT 请求,当服务器发送 204 无内容响应时,我无法获得响应代码

对于我在 Google 表格中使用的私有服务器的 GET 和 POST 请求,执行类似的操作,我会得到正确的响应。我使用该响应来更新数据,同样重要的是通过评估来检查错误response.getResponeCode()

对于我所做的所有 GET 和 POST 请求,我都会收到响应。从该响应中,我可以解析响应代码。但是对于我使用的特定服务器,当我使用 PUT 编辑记录时,成功的编辑会返回:

204 无内容

此外,最后一行return response.getResponseCode()返回一个错误,响应未定义。

这是我做任何事情时遇到的错误response

ReferenceError: response is not defined

PUT 正在工作。我只知道这一点,因为 1)当我检查是否使用服务器进行了编辑时,它们是 2)在 Postman 中测试 PUT 至少向我显示“204 No Content”和 3)文档说这正是我应该期待的.

但我仍然想了解如何在我的 Google 表格应用程序中评估此无内容响应以进行正确的错误跟踪。至少以某种方式获取字符串“204”。有任何想法吗?我什至不能让谷歌表格说 204。

0 投票
0 回答
422 浏览

javascript - 如何使 nock 以“未定义”的身体响应?

我正在测试一个处理不同情况的请求处理程序,其中一个需要 HTTP 代码 204 的响应并且没有响应正文 ( typeof response.body === 'undefined')。

我试图将回复设置为nullundefined而根本没有设置它。在所有这些情况下,响应正文都是一个空字符串 ( '')。

有没有办法从 Nock 中删除响应正文?

这是我要运行的测试:

这是我要测试的代码:

0 投票
0 回答
969 浏览

javascript - Axios 不解决/拒绝状态码 204 的承诺

我正在使用 axios 作为 http-client 调用私有 REST API。如果我正在调用一个应该响应有关对象的一些信息的端点,我会得到一个响应(状态代码 200、包含该信息的有效负载等)。如果我请求的对象不存在,则 REST API 会以状态码 204 且无负载响应。我认为这很好,我的问题是 axios 对此响应没有反应。

这是我所拥有的:

此函数用于使用提供的端点请求方法和端点 URI 动态调用端点(这是一些项目特定的东西)。

triggerEndpoint 函数根据端点的请求方法调用所需的 axios 方法:

我想要的是:

如果我收到状态代码 204,我希望我最终会在 restApiService.triggerEndpoint 函数的 then 块中处理有关其状态的响应。

发生了什么:

在调用函数 triggerEndpoint(在本例中为 axios.get 函数)后,请求被转发到 REST API,后者发挥其魔力并以状态码 204 和无负载响应。但在我的后端......什么都没有发生。

后端进程不会以任何方式做出反应。

这是具有相同数据的同一端点的 soapui 请求的屏幕截图,显示如果请求不存在的对象(在本例中为 123),则 REST 以 204 响应在此处输入图像描述

你能帮我吗?我在这里想念什么?在这种情况下 axios 应该如何表现?

我猜 axios 收到了响应,但发生了一些未处理的事情。我猜这是因为如果 axios 没有得到响应,超时应该在某个时候启动,而这永远不会发生。

非常感谢提前

0 投票
2 回答
211 浏览

api - GET、PUT、DELETE 方法上的 404 与 204

如果一个请求想要获取/删除/更新一个不存在的资源,你希望返回什么?204 还是 404?

示例:api/blog/{id}可以接受请求:GET、DELETE、PUT,并且api/blog可以接受 GET 和 POST。

GET: api/blog返回博客列表,GET: api/blog/{id}返回单个博客,PUT: api/blog/{id}更新单个博客和DELETE: api/blog/{id}删除单个博客。

0 投票
1 回答
79 浏览

reactjs - 可以将 POST 请求重定向为另一个 GET 请求吗

我正在开发一个反应应用程序,由于机密性,需要在主体内发送对象参数。所以我像这样从反应应用程序客户端向后端服务器发出 POST 请求

发出此 POST 请求后,有一个带有“method = OPTIONS”和“URL='htps://java.backend.xyz/path1'”的预检请求... java-backend-server 以 status_code=200 响应该请求。

在上述预检请求之后,java-backend-server 处理 POST 请求,而不是发送响应,java-backend-server 使用 GET 请求(即重定向)进行响应,例如:

并且响应上面的 GET 请求,express 应用程序以 status_code=200 响应

但是在这个 GET 请求之后,有一个带有 request Method=OPTIONS 并且具有与上面相同的 URL 的预检请求,即

对于上面的 OPTIONS 请求,快递服务器以 status_code=204 响应,这意味着客户端不需要离开其当前页面...这是禁止我的应用程序进行最终重定向的原因,即在后端服务器响应之后使用 GET 请求,即使搜索引擎没有更新重定向 URL,我的反应应用程序也无法进行重定向

那么,这甚至可能吗?我假设 GET 请求之后的预检请求禁止客户端进行最终重定向。有人可以帮我解决这个问题吗