【问题标题】:The header sent by Postman is not received in the PHP scriptPHP 脚本中收不到 Postman 发送的 header
【发布时间】:2018-07-07 03:34:10
【问题描述】:

我正在向 PHP 脚本发送标头和 GET 请求,但 Postman 没有发送标头,或者 PHP 脚本没有收到它。我在服务器上使用 Nginx(Apache2 给出了几乎相同的结果,但没有 api_token)。我找不到问题所在。

服务器端PHP代码如下:

<?php
 $headers =  getallheaders();
 foreach($headers as $key=>$val){
    echo $key . ': ' . $val . '<br>';
 }
?>

从 Postman 控制台检查后,似乎确实发送了标头,但由于某种原因在 PHP 脚本中没有收到。

【问题讨论】:

  • 您可以将请求标头注销到控制台以查看它是否正在发送 - console.log(pm.request.headers) 您将能够在 Postman 控制台中看到该输出。可能会给你更多的想法。你能用服务器端代码更新问题吗?
  • 丹尼,谢谢。我添加了脚本和控制台输出。

标签: php nginx httprequest postman


【解决方案1】:

我认为您不能在自定义标题的标题名称中使用下划线,因为它是默认禁用的功能。更多信息可以找到here

您可以通过从标题名称中删除它来测试它。

【讨论】:

  • 这很奇怪......我过去在一个名为 Laravel 的 php 框架中使用了这个名称(api_token)并且它工作正常。现在它不适用于裸 PHP 和 Phalcon。就像你说的,删除下划线解决了这个问题。非常感谢。
  • 哦,你是救生员!在过去的 2 个小时里,我一直在努力解决这个问题,试图找出为什么我的 bluehost 服务器没有收到我的自定义标头,而它在我的 LAMP 环境中没有问题!一旦我从标题键中删除下划线,它就开始工作了。谢谢。
【解决方案2】:

似乎是旧线程; 我对新版本的 PostMan 有同样的问题;旧版本工作正常(使用 USER 和 PW 参数)。

不是解决方案而是继续前进(在 PostMan 解决之前): 一个奇怪而快速的解决方案是在 Header 中添加一个新变量(例如用户名和密码:将作为 HTTP_USERNAME 和 HTTP_PASSWORD 发送)... 否则你必须配置 .htaccess 文件,检查 PHP ini 和 WebServer (Apache/IIS)

【讨论】:

    猜你喜欢
    • 2020-03-31
    • 2019-09-08
    • 2015-09-06
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 2018-06-09
    • 2012-10-04
    相关资源
    最近更新 更多