用 postman 打 localhost php 的 api 没有 $_SERVER['HTTP_ORIGIN'] 的问题?

困扰我几天了
我用 postman 打 localhost php 的 api ,他会提示找不到 $_SERVER['HTTP_ORIGIN']

Notice: Undefined index: HTTP_ORIGIN

但如果是用 vue localhost 打是可以的
以及打服务器上的也同样是可以
网上好像没有人讨论这件事
postman 有办法模拟 HTTP_ORIGIN 让php抓的到吗?

阅读 3.6k
1 个回答

Origin 这 Header 头是浏览器 CORS 中,用来区分发起源的,即同源策略中的“源”的概念。因为 CORS 是用户代理(浏览器)的中的概念,在其他环境中并不受此限制,所以就可以不发送此 Header。

POSTMAN 如何模拟?

在 POSTMAN 的 Header TAB 的 name 中填入 Origin ,value 中填入 <schema>://<host>[:<port=80>] 格式的参数即可,例如 https://example.com

注意

因为次 Header 并非所有用户代理都会发送,所以你应该在 PHP 中适用 isset 或者 ?? 操作符判断其是否存在,再取用,比如。

$origin = $_SERVER['HTTP_ORIGIN'] ?? '';

// TODO

或者

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

// TODO
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题