问题标签 [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.
json - 是否有可能有非空响应的 204 状态码
我正在使用http模块。前端开发团队问我什么时候没有结果,发送一个空列表和状态码 204 的响应。我试过这个:
在这种情况下,AllPosts 是这样的:
问题是在将状态码设置为 204 后我无法发送任何内容。因此响应为空。我想用 204 状态码发送上面的 AllPosts。有什么办法吗?
pagination - 使用带有页面参数的 GET 请求的分页 API 的适当响应代码是什么,其中参数不产生记录?
我为数据库开发了一个 Web 界面。db 和 Web 界面供我自己在我的私人 Intranet 上运行的爱好中使用。目前,数据库有 1800 多条记录,随着使用量的增加而增加。Web 界面的第 1 版在需要大量滚动的单个页面上列出了所有记录 (~2.5KB)。Web 界面的第 2 版引入了分页,其中记录被分组为大约 100 条记录的非固定大小。在页面加载时,所有 1800 多条记录仍会传输到客户端,但只有第一页是“可见的”,其他 17 条是隐藏的。我使用一系列带有 JS 点击功能的“非提交”按钮来隐藏当前页面并使所选页面可见。更好的是滚动限制为〜100条记录。Vers 3 仅在页面加载时传输第一页和分页按钮。现在,使用 fetch() API 的点击功能发送一个带有参数的 GET 请求以获取所需的页面,然后将其交换到 DOM 中。参数指定页面的起点和终点。这些值来自服务器在页面加载时提供的分页按钮。在显着减少数据传输大小的情况下运行良好。在 Vers 4 中,我概括了 fetch() API GET 请求参数以发送用户指定的参数,以允许用户选择任何页面的起点和终点。(注意:用户不能直接指定页面大小。)所以如果用户选择没有记录的起点和终点我的计划是使用HTTP Response Code 204“No Content”告诉JS代码有没有匹配的记录,也没有什么可交换的。这是适当的响应代码吗?我应该在 204 代码的响应中包含任何其他标题信息吗?
json - 在 Json Body 中的 204 响应的 API 中创建客户消息
我正在应用一个 API,其中我使用 PATCH 方法使用下面的 JSON 正文更新了 salesforce 值。
{“所有者ID”:“00Gi00000055OwWEAU”}
它会成功调用,但响应为空。当我检查它的状态时,它有 204 代码(无内容)
在使用 JSON 正文成功调用 API 后,您能否帮我创建一条成功消息作为响应。
android - 注销后如何使用 Retrofit 处理“204 no content”响应?
在我的 Android 应用程序中,我有以下注销功能:
包含端点的 API 接口包含以下内容:
在服务器端,我使用django-rest-knox作为第三方库进行身份验证。该库的注销端点有一个内置的 LogoutView,它在成功注销后返回“204 no content”响应。该文档建议不要更改 LogoutView,因为修改会导致不可预知的结果。但是虽然注销请求在服务器端成功,Retrofit 将“204 no content”响应视为异常。正如我在上面的代码片段中提到的,catch 子句被执行。
现在我的问题是:当请求成功时,为什么 Retrofit 会抛出异常?如何处理“204 no content”响应?
ruby-on-rails - Rails 6 - 在 POST 上依赖 204(无内容)让 Jquery 在后台创建记录时更新同一页面是否安全?
背景:在 Rails 5+ 中,没有关联 View 的 POST 路由现在只向浏览器返回 204 状态代码(而不是像 Rails 5 之前那样引发 ActionView::MissingTemplate 异常)。据我了解,它告诉所有浏览器“留在同一页面上”。
出于用户体验的原因,当用户单击“提交”时,它会在某个表单上发布表单数据,并且还会触发 Jquery 对页面进行一些更新。
虽然它似乎在开发和生产中都可以正常工作,但是将表单提交返回 204 并在页面上包含 jQuery 更新信息是否有任何不利影响?
http - 什么是 null 或缺少对象属性的适当 HTTP 状态代码?
假设我们有一个 API,其路由/foo/<id>
表示对象的实例,如下所示:
(Python 中的示例只是因为它方便,这是关于 HTTP 层而不是应用程序逻辑。)
我们想在 下暴露完整的序列化Foo
实例(可能有许多其他属性)/foo/<id>
,但是为了效率,我们也想暴露/foo/<id>/bar
给我们给定的.bar
属性Foo
。
在这里时404
用作状态响应对我来说感觉很奇怪,因为如果您请求一些任意不正确的路线(例如,),您会得到相同的状态代码;如果我们要在我们的客户端层自动处理 404 状态,那么可能会用“我们忘记登录”或“客户端 URL 路由错误”之类的解释来误解这一点。bar
None
/random/gibberish
但是,200
使用响应体null
(如果我们使用 JSON 进行序列化)也感觉很奇怪,因为在给定端点处实体的存在或不存在通常是通过状态而不是正文中的内联来传达的。204
在这里说一个空的响应体是否正确?是404
正确的方法,如果是这样,服务器传达细微差别的正确方法是什么,例如“但这是完全预期且正确的路线”或“实际上您指定的 foo-ID 不正确,这不是因为属性未设置而丢失”。
以不同方式表示该属性的缺失有哪些优点和缺点?
node.js - 发送 204 时节点 HTTP 服务器挂起 - 无内容响应
我遇到了一个问题,其中通过我的 NodeJS HTTP 服务器发送带有 204 - NO CONTENT 状态代码的响应会导致响应无限期挂起,从而使发起请求超时。
即使preparedBody
只是空字符串,错误仍然会发生。
我如何得到响应出去?
java - 对 AEM 的回发请求给出的响应代码为 204 无内容
AEM 版本 - 6.5
环境 - 本地设置。相同的代码适用于所有非产品和产品环境。
浏览器 - Chrome 和 Edge
AEM osgi 配置完成 -使用我的 AEM servlet URL更新了Apache Sling Referrer Filter和使用源更新了 Apache Sling Referrer Filter - 一个 sso 域 url。如果没有这 2 个配置更新,回发请求会抛出 403 错误代码。
涉及的设置和步骤 -
- AEM 页面上的页面捕获用户 ID 和密码
- AEM 代码将这些详细信息发布到 SSO。SSO 处理细节。它发回 SAML 响应(在登录成功时使用 SAML 跟踪器成功跟踪)。
- 由于此回发请求返回 204 响应代码,并且我的 AEM 代码/servlet 处理此请求未在本地触发。(同样,此 servlet 被触发并且 SAML 响应在非产品和产品环境中成功解码)
尝试了其他解决方案(不起作用):
- 更新代码并重新编译和部署到本地 aem 服务器
- 使用 Origin 值更新了Adobe Granite 跨域资源共享策略,它再次以某种方式给出 403 错误。参考 - https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/aem-postback-gives-http-204-instead-of-http-200/td-p/384108
请提出解决问题的任何解决方案。
spring-boot - 返回 void 和 ResponseEntity 有什么区别在 Spring Boot RestController 中?
我想知道如果应返回 void,则 Spring Boot RestController 的返回值有什么区别?
无论哪种方式,我都可以看到测试中的差异。似乎即使我返回 void ,HttpStatus.NO_CONTENT
(204) 也会返回给请求者,如果我使用ResponseEntity<Void>
.
因此,当我void
从端点返回时,无论如何都会返回 HttpStatus ,无论我选择void
还是ResponseEntity<Void>
?
asp.net-core - ASP.NET Core Web API - 返回带有 NoContent 响应的字符串消息?
我在数据库中有一些记录可能有也可能没有某些列的信息,这没关系。
如果端点的消费者遇到这些记录之一,我想返回“NoContent”,因为,我们可以在该记录上执行没有内容。但是......我想告诉他们为什么,因为有两个不同的原因。
在查看其他状态代码时,这有效:
它实际上显示在响应标题中作为字段位置(我想,不要让我再次运行这个项目!)
这适用于内部服务器错误:
但是,对于 NoContent,没有像 Accepted 这样的构造函数,您可以在其中传递对象。此外,这表明我没有任何字符串:
帮助!