0

我目前正在编写用户脚本。这意味着,javascript 在访问时被“注入”到浏览器指定的用户脚本中。

现在我只想得到最后 500 个字节,例如这个网站http://www.tgchan.org/kusaba/quest/res/499039.html

使用 Greasemonkey 一切正常:

GM_xmlhttpRequest({
    method: 'GET',
    headers: {
        "Accept-Encoding": "",   
        "Range": "bytes=-500"          
    },
    url: window.location.href.match(/http:\/\/[\s\S]*\//) + 'res/'+threadid+".html",
    onload: function(responseDetails) {
        console.log(responseDetails.responseText.length);
    }
});

但是在没有 GM_xmlhttpRequest 的情况下这样做

var r = new XMLHttpRequest();
r.onreadystatechange=function(){if(r.readyState==4)console.log ( r.responseText.length );}; 
r.open('GET', 'res/'+threadid+".html",true);
r.setRequestHeader('Range', 'bytes=-500');
r.setRequestHeader('Accept-Encoding', '');
r.send(null);

或者使用 jQuery 或 Ajax 将导致

接受编码:gzip,放气

因此,此标头已设置且无法更改。

现在,我知道我无法更改此标头,我可以以某种方式执行一个全新的请求,就像 Greasemonkey 正在使用的那样吗?用于 chrome 和 Opera 的 Tampermonkey 在这里也失败了......或者即使它是 gzip 编码的,我也可以获得最后 500 个字节吗?

4

0 回答 0