欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

www.gisinternals.com下载页面出错

程序员文章站 2024-03-25 08:39:34
...

点击下载链接出错

点击下载链接,画面迁移,但是并没有显示相应的现在一栏。
www.gisinternals.com下载页面出错

分析原因

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片段了。

www.gisinternals.com下载页面出错

相关标签: 踩坑记 gdal