<?php if (isset($_POST['action']) && $_POST['action'] === 'dopost') { // 说明①:服务端接收header后会将键名改为全大写并加上“HTTP_”前缀,如有中横线则会替换为下划线。 // 说明②:前端使用encodeURIComponent()对header键值编码,这里需要用urldecode()解码。 $myHeader1 = urldecode($_SERVER['HTTP_MY_HEADER_1']); $myHeader2 = urldecode($_SERVER['HTTP_MY_HEADER_2']); $myHeader3 = urldecode($_SERVER['HTTP_MY_HEADER_3']); $myHeader4 = urldecode($_SERVER['HTTP_MY_HEADER_4']); $return = array( 'errcode' => 0, 'errmsg' => '', 'data' => "{$myHeader1},{$myHeader2}。{$myHeader3},{$myHeader4}。", ); header('Content-Type: application/json; charset=UTF-8'); exit(json_encode($return)); } ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>AJAX设置自定义header</title> </head> <body> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript"> $(function () { $.ajax({ datatype: 'json', type: 'POST', data: { action: 'dopost', }, beforeSend: function (xhr) { // 重要提醒①:header键名不能用下划线,只能用中横线。 // 重要提醒②:header键值尽量不要使用中文,如有中文必须对其进行编码,服务端接收header后再对其进行解码。 xhr.setRequestHeader('my-header-1', encodeURIComponent('孩儿立志出乡关')); // 服务端可使用 $_SERVER['HTTP_MY_HEADER_1'] 获取 xhr.setRequestHeader('my-header-2', encodeURIComponent('学不成名誓不还')); // 服务端可使用 $_SERVER['HTTP_MY_HEADER_2'] 获取 xhr.setRequestHeader('my-header-3', encodeURIComponent('埋骨何须桑梓地')); // 服务端可使用 $_SERVER['HTTP_MY_HEADER_3'] 获取 xhr.setRequestHeader('my-header-4', encodeURIComponent('人生无处不青山')); // 服务端可使用 $_SERVER['HTTP_MY_HEADER_4'] 获取 }, success: function (response) { console.log(response.data); // 孩儿立志出乡关,学不成名誓不还。埋骨何须桑梓地,人生无处不青山。 }, }); }); </script> </body> </html>
Copyright © 2024 码农人生. All Rights Reserved