累计: 0

未来之窗昭和仙君ajaxs安全请求功能说明书

0.00

★19次@

A:赛忞初雪

上架: 2026-08-20 23:40:31

未来之窗昭和仙君ajaxs安全请求功能说明书

         收藏
 

四方仙域传送阵         

未来之窗ajaxs安全请求

未来之窗ajaxs安全请求

未来之窗昭和仙君 - cyberwin_fairyalliance_webquery

一、功能概述

未来之窗ajaxs安全请求($cq.ajaxs)是在基础 AJAX 请求之上封装的加密传输层。该函数在发送请求前,自动将请求数据通过 KAS 加解密算法进行加密,再交由底层 $cq.ajax 发出。服务端收到后需使用相同密钥与算法解密还原。适用于接口参数防篡改、敏感数据传输、临时令牌下发等场景,可有效防止请求体被明文嗅探或中途篡改。

二、核心函数与调用格式

1. $cq.ajaxs

$cq.ajaxs(options);

该函数接收一个配置对象,从中提取加密参数与请求配置,自动对 data 字段加密后调用底层 $cq.ajax 发送请求,返回 XMLHttpRequest 对象。

三、参数说明

参数 类型 是否必填 默认值 说明
options.url string 请求目标地址。
options.data 任意类型 待加密发送的请求数据。对象或数组会先经 JSON.stringify 序列化;null 转为 "null",undefined 转为 "undefined";其余类型强制转为字符串后再加密。
options.safekey string 加密密钥,不能为空。为空时函数会在控制台输出错误并返回错误提示字符串,不会发起请求。服务端必须使用相同密钥解密。
options.expiry number 3600 加密数据的有效期,单位为秒。服务端解密时会校验时效,过期数据将被拒绝。设为 0 表示永不过期。
options.type string "POST" 请求方法,如 "GET"、"POST" 等。
options.success function 请求成功回调,参数为 (responseData, status, xhr)。
options.error function 请求失败回调,接收错误详情对象。
options.dataType string "normal" 响应数据解析方式。"JSON" 时尝试 JSON.parse 响应体;"normal" 时返回原始文本。
options.headers object 自定义请求头键值对。
options.async boolean true 是否异步请求,透传至底层 $cq.ajax。
options.complete function 请求完成回调(无论成功失败),参数为 xhr。

四、返回值

  • 正常情况:返回底层 $cq.ajax 创建的 XMLHttpRequest 对象,可用于中断请求(abort)、读取状态等操作。
  • safekey 为空时:不发起请求,直接返回错误提示字符串 "Password can't be empty, please complete the param safekey ,you can add expiry to limit date ",并在控制台输出 error。

五、使用示例

1. 基础加密 POST 请求


$cq.ajaxs({
    url: "/api/user/login",
    type: "POST",
    safekey: "fairy_alliance_2026",
    expiry: 1800,  // 30分钟内有效
    data: {
        username: "zhaoxianjun",
        password: "********"
    },
    dataType: "JSON",
    success: function(res) {
        console.log("登录结果:", res);
    },
    error: function(err) {
        console.error("请求失败:", err);
    }
});
                

2. 发送字符串数据并自定义请求头


$cq.ajaxs({
    url: "/api/message/send",
    type: "POST",
    safekey: "my_secret_key",
    expiry: 3600,
    data: "这是一段需要加密传输的明文消息",
    headers: {
        "X-Request-From": "cyberwin"
    },
    success: function(res) {
        console.log(res);
    }
});
                

3. 永不过期的加密请求


// expiry 设为 0,密文永久有效(仍受签名校验保护)
$cq.ajaxs({
    url: "/api/config/pull",
    safekey: "permanent_key",
    expiry: 0,
    data: { module: "system" },
    success: function(res) {
        console.log(res);
    }
});
                

4. 缺少 safekey 时的行为


var result = $cq.ajaxs({
    url: "/api/test",
    data: "hello"
    // 未传 safekey
});
console.log(result);
// 输出:Password can't be empty, please complete the param safekey ,you can add expiry to limit date
// 控制台同时输出 error,请求不会发出
                

六、注意事项

  • safekey 为必填项,为空时函数直接返回错误字符串并终止,不会发起任何网络请求。
  • 请求数据在发送前会被 KAS 算法加密,服务端必须使用相同的 safekey 与算法逻辑解密,否则无法还原原文。
  • 对象或数组类型的 data 会先经 JSON.stringify 序列化再加密;若存在循环引用导致序列化失败,会降级为强制字符串拼接。
  • 加密数据内置有效期,默认 3600 秒(1小时),服务端解密时校验过期将拒绝处理;设为 0 可永久有效。
  • 每次加密结果因随机前缀而不同,即使相同数据与密钥,两次请求的请求体也不一致,这是正常现象。
  • ajaxs 仅对请求体加密,不替代 HTTPS;URL 路径、请求头等仍为明文,高安全场景请配合 HTTPS 使用。

硬件app