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

用 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抓的到吗?


回答:

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

以上是 用 postman 打 localhost php 的 api 没有 $_SERVER[&#x27;HTTP_ORIGIN&#x27;] 的问题? 的全部内容, 来源链接: utcz.com/p/936739.html

回到顶部