我正在尝试预加载安全的CDN脚本(公司策略声明,所有的urls都是安全的),用于测试。尝试通过创建元素const scriptElememtn = document.createElement('script');并将元素添加到文档中,因为它是安全的,因此添加了身份验证cookie document.cookie = "auth=0bec1d8f-e586-4e60-ace1-06935d5e0b41".,因为CDN与公司域const scriptElememtn = document.createElement('script');一起使用,而业力是localhost,因此它没有发送该请求。
我的问题是
F 216
发布于 2022-07-08 00:58:36
通过在karma.conf.js文件中设置代理来解决此问题。在src/test.js文件(所有测试的init代码)中,
src设置为相对路径,而不是完全限定的路径。在src/test.js下,添加以下块,
const originalKarmaLoad = (window as any).__karma__.loaded;
(window as any).__karma__.loaded = async function () {
const wcplScript = document.createElement('script');
const waitForLoad = new Promise((resolve, reject) => {
wcplScript.onload = () => resolve(0);
wcplScript.onerror = () => {
console.error('Failed to load CDNs');
reject();
};
});
document.cookie = `${cookie.name}=${cookie.value}`;
wcplScript.src = '/cdn/lib/'; // use the relative path
wcplScript.async = false;
wcplScript.type = 'module';
document.body.insertBefore(wcplScript, document.body.lastChild);
await waitForLoad;
originalKarmaLoad.call(this);
};在karma.conf.js下,将代理设置为指向CDN,
{
.....
proxies: {
'/cdn/lib/': {
target: 'https://mycompany.com/cdn/lib',
changeOrigin: true,
},
},
proxyValidateSSL: false,
}https://stackoverflow.com/questions/72900457
复制相似问题