繁体   English   中英

Ajax setRequestHeader,我无法在服务器端获取值

[英]Ajax setRequestHeader, i can't get values on the server side

我正在使用XMLHttpRequest发送请求标头:

liveXhr.open("GET", url, true);
liveXhr.setRequestHeader("keychain_id", signatureKEYCHAINID);
liveXhr.setRequestHeader("timestamp", signatureTS);
liveXhr.setRequestHeader("signature", signature);
liveXhr.send();

在我的本地主机上,一切正常,当我登录时:

error_log(print_r(apache_request_headers(), true));

我有这个 :

[Host] => localhost
[Connection] => keep-alive
[Pragma] => no-cache
[Cache-Control] => no-cache
[timestamp] => 1478279032
[signature] => abcd
[keychain_id] => abcd
[User-Agent] => Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (   KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
[Content-Type] => text/plain

我可以获取时间戳,签名,keychain_id的值

在我的preprod服务器上,执行相同的过程:

...
[Access-Control-Request-Headers] => keychain_id, signature, timestamp
...

我无法获取时间戳,签名,keychain_id的值。

是Apache设置问题还是其他问题?

尝试:

//array
$requestHeaders = apache_request_headers();

//get array item by name
$keyChainId = $requestHeaders['keychain_id'];
$timestamp = $requestHeaders['timestamp'];
$signature = $requestHeaders['signature'];

//print items
echo "- keychain_id = $keyChainId";
echo "\n- timestamp = $timestamp";
echo "\n- signature = $signature";

[编辑] 尝试:

//not underscore
liveXhr.setRequestHeader("keychainid", KEYCHAINID);
...
//prefix HTTP_
var_dump($_SERVER['HTTP_TIMESTAMP']);
var_dump($_SERVER['HTTP_SIGNATURE']);
var_dump($_SERVER['HTTP_KEYCHAINID']);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM