向 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 但没有创建记录