Header头怎么传递数据?

我看别人说header头可以传递token值 请问是怎么传递的呢?能举个例子吗

阅读 7.2k
6 个回答

在浏览器中,你可以使用 XMLHttpRequset 在头部传递传递token值

var xhr = new XMLHttpRequest();

xhr.open('get','/index');

xhr.setRequestHeader('token', 'xxxxx'); // xxxx 就是你的token值

xhr.send();

// xhr.getResponseHeader('token') // 可以获取从服务器带来的 token值 

而在服务器端,以express举例

const app = new express();
app.get('/index', (req, res) => {
  req.header('token') // 获取从浏览器端传送过来的token 值 
  res.status(200);
  res.header('token', 'xxxxx'); // xxxxx 就是你的token值
  res.send('hello world');
});

自定义一个header,譬如叫x-token,然后值就是你的token

也可以放在cookie中,客户端服务端也都能拿到

我做sso就直接用header传的token checksum等数据。

传输(curl时):
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json', 'xxxx你定义的header数据名 '. 'xxxx您要传的token/checksum等等'));
获取:
$headers = array ();
foreach ( $_SERVER as $name => $value ) {
    if (substr ( $name, 0, 5 ) == 'HTTP_') {
        $headers [str_replace ( ' ', '-', ucwords ( strtolower ( str_replace ( '_', ' ',substr ( $name, 5 ) ) ) ) )] = $value;
    }
}
 //$headers就是个数组了。
<?php
header('Token: 11111111111111111');
事实header支持自定义头,只是行业的原因,会有一些系统名词作为行业规范,如cookie代表cookie等

clipboard.png

header包含的数据格式是key-value

在页面可以使用ajax设置值:xhr.setRequestHeader('k', 'v');

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