如何解决使用 Postman 调用 localhost PHP API 时丢失 $_SERVER[\'HTTP_ORIGIN\'] 的问题?

如何解决使用 postman 调用 localhost php api 时丢失 $_server[\'http_origin\'] 的问题?

使用 postman 打 localhost php api 时丢失 $_server['http_origin'] 的解决方法

“origin”是浏览器 cors 中用来区分来源的 header 头。该头仅在浏览器环境中使用,在其他环境(如 php)中并不受 cors 限制。因此,在 postman 中调用 localhost php api 时,可能不会发送此头,导致 php 脚本中 $_server['http_origin'] 无法获取。

postman 中模拟 http_origin

以下是在 postman 中模拟 http_origin 的步骤:

  1. postman 中打开需要调用的 api 请求。
  2. 切换到“header”选项卡。
  3. 在名称栏中输入“origin”。
  4. 在值栏中输入 api 来源的 url,格式为:://[:]。例如:https://example.com

注意:

由于 http_origin 并非所有用户代理都会发送,因此在 php 中,需要使用 isset 或 ?? 操作符判断该头是否存在,再取用。例如:

$origin = $_server['http_origin'] ?? '';

立即学习PHP免费学习笔记(深入)”;

$origin = '';
if(isset($_SERVER['HTTP_ORIGIN'])){
  $origin = $_SERVER['HTTP_ORIGIN'];
}

以上就是如何解决使用 Postman 调用 localhost PHP API 时丢失 $_SERVER[\'HTTP_ORIGIN\'] 的问题?的详细内容,更多请关注其它相关文章!