www.gisinternals.com下载页面出错
程序员文章站
2024-03-25 08:39:34
...
点击下载链接出错
点击下载链接,画面迁移,但是并没有显示相应的现在一栏。
分析原因
F12打开开发者工具,发现网页下载jquery的js出错,估计是国内屏蔽了下载地址,导致运行出错。
https://code.jquery.com/jquery-1.7.2.min.js
分析其中js执行,在scripts/gisinternals.js中有使用loadContent2,发送getJson取得相应的下载地址。
function loadContent2(params, host) {
$('#servercontent').html("Loading content from " + serverlist[host].name + "...<img src=\"images/loader.gif\" width=\"150px\"/>");
$.getJSON(serverlist[host].url,
params,
function(data) {
$('#servercontent').html(data.html);
currenthost = host;
$('#currentmirror').html("loaded from: " + serverlist[host].name);
})
.error(function(jqXHR, textStatus, errorThrown) {
$('#servercontent').html("<span style=\"color:red\">Could not access server content! </span><input type=\"button\" value=\"Retry\" onClick=\"window.location.reload()\">");
++host;
if (host == serverlist.length)
host = 0;
if (host != currenthost)
loadContent2(params, host);
});
}
通过断点,获取到方法参数。
let urls = "https://download.gisinternals.com/getcontent.php?callback=?";
let params = {content: "filelist", file: "release-1900-x64-gdal-3-0-4-mapserver-7-4-3.zip"};
对策
在控制台执行增加jquery的内容。
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://libs.baidu.com/jquery/1.7.2/jquery.min.js';
var header = document.getElementsByTagName('head')[0];
header.appendChild(script);
执行完毕后,此环境中就有了正确的$对象。然后自己执行相应的getJson即可。
let urls = "https://download.gisinternals.com/getcontent.php?callback=?";
let params = {content: "filelist", file: "release-1911-gdal-3-1-2-mapserver-7-6-1.zip"};
console.log(urls);
$.getJSON(urls,
params,
function(data) {
console.log(data);
});
获得返回对象,大致如下:
jQuery21405669908049612491_1600848267729({'html': 'xxxxxx'})
其中xxxxx就是下载链接的html片段了。