Author:赵志乾
Date:2024-08-05
Declaration:All Right Reserved!!!
1. 问题描述
从外部系统跳到落地页,并将验签相关参数通过url参数传入落地页。由于后台对所有请求均增加了验签校验,导致js静态文件获取失败。原有代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>页面</title>
</head>
<!--由于src指定的静态文件未添加验签信息,导致请求被拦截-->
<script type="text/javascript" src="standalone.bundle.js"></script>
2. 解决方案
由于HTML本身是静态的,动态加载JS文件,需要通过脚本来实现;代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>页面</title>
</head>
<script>
// 定义脚本加载函数
function loadScript(url) {
// step1: 创建script标签并赋值基本属性
let script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onload = function() {
console.log('Script loaded and executed.');
};
script.onerror = function() {
console.error('Script loading failed.');
};
// step2: 将script标签添加到HTML页面
document.head.appendChild(script);
}
window.onload = function() {
// 在加载脚本时拼接验签参数
loadScript("standalone.bundle.js"+window.location.search);
};
</script>