Javascript-仅连接到VPN时从内部服务器加载图像
我的目的是通过Javascript在我们的主页上隐藏一个iframe,如果用户在家工作并且没有连接到公司VPN 为了了解最终用户是否连接到我们公司的VPN,我已将一个虚拟映像上载到我们的一个Intranet站点,我们只能在连接到VPN并尝试通过Javascript访问映像时才能连接该站点。我的代码如下:Javascript-仅连接到VPN时从内部服务器加载图像,javascript,jquery,request,vpn,request-promise,Javascript,Jquery,Request,Vpn,Request Promise,我的目的是通过Javascript在我们的主页上隐藏一个iframe,如果用户在家工作并且没有连接到公司VPN 为了了解最终用户是否连接到我们公司的VPN,我已将一个虚拟映像上载到我们的一个Intranet站点,我们只能在连接到VPN并尝试通过Javascript访问映像时才能连接该站点。我的代码如下: function request_image(url) { return new Promise(function(resolve, reject) {
function request_image(url) {
return new Promise(function(resolve, reject) {
var img = new Image();
img.onload = function() { resolve(img); console.log('test1'); };
img.onerror = function() { reject(url); console.log('test2'); };
img.src = 'https://ourwebsite/Pages/Resource.aspx?ItemPath=%2fwhite.png';
});
}
function ping(url, multiplier) {
return new Promise(function(resolve, reject) {
var start = (new Date()).getTime();
var response = function() {
var delta = ((new Date()).getTime() - start);
delta *= (multiplier || 1);
if (delta>50) resolve(delta);
else reject(delta);
console.log('this is delta: ' + delta);
};
request_image(url).then(response).catch(response);
setTimeout(function() { reject(Error('Timeout')); }, 1000);
});
}
在主页上:
var do_ping = function() {
ping('http://mssql04.nwhreit.com').then(function(delta) {
}).catch(function(error) {
document.getElementsByClassName('CanvasZoneContainer')[1].style.display='none';
});
};
do_ping();
当我运行此代码时,我看到它总是点击img.onerror
,因此在控制台中,无论我是否连接到VPN,我都会看到“test2”。为什么?连接到VPN时,我想点击img.onload
。我看不出我做错了什么,任何帮助都将不胜感激
请注意,我可以转到“https://ourwebsite/Pages/Resource.aspx?ItemPath=%2fwhite.png“并成功查看图像,使链接正常工作