作为程序员一定要保持良好的睡眠,才能好编程

在ajax请求传输加密字符串结果验证

发布时间:2018-09-12

项目中使用base64生成生成的秘钥以及部分信息需要加密传输。

传输过程中,有一点点的注意事项:


这里jquery设置header头

beforeSend:function(xhr){
           xhr.setRequestHeader('Access-Token', yao);
           xhr.setRequestHeader('Access-Token2', yao);
           xhr.setRequestHeader('Access-Token3', yao);
           xhr.setRequestHeader('Access-Token4', yao);
           xhr.setRequestHeader('Access-Token5', yao);
       },

这个样子设置





先看一段js代码:

var yao='qasiqPxTTsOherWq6txEhAfchTTUvsAzibNkBdzjlDcUSYoADHzyuysdwEnAvmS3OSjZwHQ5fmsSj+1r5RT54KRQr9mK9wK46VEX3cDkJT63uGgWwe29j6p1zyM6DgqIrGfRc2n8d1kGFZMRcB6SFp85vT0pVb1nVRijlPqrKIfi25P/pkSnS5jELi+xEU/+TyCFUssaeA4huOeFTwws8y9sWE3cQ0ua7Ze3Lx2fJUw=';
   ajax({
       url: '/money/t?b='+yao,
       type: 'post',
       data: {
           pass: yao
       },
       beforeSend:function(xhr){
           xhr.setRequestHeader('Access-Token', yao);
           xhr.setRequestHeader('Access-Token2', yao);
           xhr.setRequestHeader('Access-Token3', yao);
           xhr.setRequestHeader('Access-Token4', yao);
           xhr.setRequestHeader('Access-Token5', yao);
       },
       needLoading: false,
       success: function(data) {
           checkJson(data, function() {

               console.log(data);

           })
       }
   });



大概意思:ajax 以post 方式提交一个请求到服务器


get

post

header 


以上三项均设置了 yao  这个字符串


字符串中 包含了 + 等部分字符,我们看一下服务器是否可以接收到指定的字符:


这是php服务器代码:

//header("Access-Control-Allow-Headers: Access-Token");
/*$data=['title'=>'123'];
$this->smarty->view('money/recharge', $data);*/



print_r($this->_post('pass'));
echo "<br>";
print_r($this->_get('b'));


echo "<br>";

var_dump($_SERVER['HTTP_ACCESS_TOKEN']);
var_dump($_SERVER['HTTP_ACCESS_TOKEN1']);
var_dump($_SERVER['HTTP_ACCESS_TOKEN2']);
var_dump($_SERVER['HTTP_ACCESS_TOKEN3']);
var_dump($_SERVER['HTTP_ACCESS_TOKEN4']);




输出结果:

jia.png



我们看到get 请求的 + 号被空格替代了


定义header头规则:

1、数字、字母、中横线   数字可以开头

2、不支持下划线、特殊字符


传递                         在服务器端 采用( 接收数据)

User-Token             HTTP_USER_TOKEN  

age                          HTTP_AGE

3school                   HTTP_3SCHOOL


USER-TOKEN          HTTP_USER_TOKEN



规则如上所示。



不管客户端怎么传递,最后转换成     大写字母          且有 中横线 的转换成  下划线


不符合传递规则,服务器端接收不到数据。




意外收获:


同源接口请求,ajax中传递header头,服务器或程序不需要设置 header头


什么是同源?  同源策略、跨域解决方案


什么是简单请求?  查看


什么是非简单请求?查看