向 POST 客户端返回 HTTP 200 代码?

Posted

技术标签:

【中文标题】向 POST 客户端返回 HTTP 200 代码?【英文标题】:Return a HTTP 200 Code to the POST client? 【发布时间】:2012-08-14 21:45:08 【问题描述】:

我有一台服务器向我发送 POST。我需要回复 HTTP 200 OK。 服务器需要有点像“继续!”在它执行另一个动作之前提示。 它需要 HTTP 200 响应。

编辑 header()我试过了,但是服务器由于某种原因不会读取它?

【问题讨论】:

我想我不明白反对票和接近票? 一些上下文真的可以帮助我们准确地理解你想要做什么。你能补充一些细节吗? 什么是 SAPI?我取决于它是否是 CGI,如何发送状态标头。 我认为它实际上可能在 CGI 上。使用 Crowdflower 的 API。 【参考方案1】:

200 代码是对成功请求的标准响应...即使回显空 json 字符串也会导致 200 OK 状态。

echo json_encode(array());

如果您想要做的只是向您的客户发出某个进程已完成的信号,您可以回显一条自定义状态消息,甚至像我上面演示的那样回显一个空白对象。

如果您想实际手动发送 200 标头,您可以这样做 -

header('Status: 200');

确保在您从服务器获得任何输出之前发送此标头。

【讨论】:

如果我想设置一个自定义的返回消息,我应该通过API还是在哪里? 其实是:header('HTTP/1.1 200 OK'); @Tarik - 我不确定我在写这个答案时使用的是什么版本的 php - 有可能随着较新的版本发生了变化。我不再使用 PHP,所以我可能不了解最新的更改。如果您愿意,请随时编辑我的帖子以添加此信息。【参考方案2】:

这个函数调用完成了这项工作: http_response_code(200);

见:http://php.net/manual/en/function.http-response-code.php

这个函数调用可以在服务器代码的任何地方抛出——这个函数被调用的顺序似乎并不重要。

【讨论】:

(PHP 5 >= 5.4.0, PHP 7)

以上是关于向 POST 客户端返回 HTTP 200 代码?的主要内容,如果未能解决你的问题,请参考以下文章

使用 POST 创建请求,响应代码为 200 或 201 和内容

Laravel POST 路由返回 HTTP 代码 200 但没有创建记录

Axios Post 200 响应后不返回数据

HTTP | 常用状态码记录

在 Rocket 中返回 HTTP 状态不是 200 的 JSON

面试题&装X案例