Javascript GM_xmlhttpRequest:在res.readyState==2上找不到头(头\u接收到的代码)
我无法从Userscript Ajax请求中获得想要的结果 下面你会看到我的代码。我知道它通常适用于一个事实,因为我已经使用readyState==4/onload通过这个函数成功地接收了数据 但是,我正在加载图像,我只需要其中的标题。这就是为什么如果我可以只加载标题,那么它将是理想的(事实上,在这种状态下它实际上是不可用的),我做到了: 顺便说一句,状态3(部分状态)也是如此,尽管我不能将结果粘贴在这里,因为它们非常庞大(只是胡言乱语) 我做错了什么?我怎样才能实现我的初衷Javascript GM_xmlhttpRequest:在res.readyState==2上找不到头(头\u接收到的代码),javascript,firefox,browser,greasemonkey,userscripts,Javascript,Firefox,Browser,Greasemonkey,Userscripts,我无法从Userscript Ajax请求中获得想要的结果 下面你会看到我的代码。我知道它通常适用于一个事实,因为我已经使用readyState==4/onload通过这个函数成功地接收了数据 但是,我正在加载图像,我只需要其中的标题。这就是为什么如果我可以只加载标题,那么它将是理想的(事实上,在这种状态下它实际上是不可用的),我做到了: 顺便说一句,状态3(部分状态)也是如此,尽管我不能将结果粘贴在这里,因为它们非常庞大(只是胡言乱语) 我做错了什么?我怎样才能实现我的初衷 提前谢谢。可能是
提前谢谢。可能是这只11岁的虫子吗?@wOxxOm可能是!尽管那会很糟糕。我已经花了几个小时写了大约500行代码,由于网站拒绝开发人员使用API,这是我唯一能通过缩略图识别图像类型的方法。我希望有一个解决方案。如果您只需要标题,为什么要使用
GET
请求而不是HEAD
请求?参考资料:@wOxxOm,该bug被列为已解决。该已解决
意味着工作表单
,实际上这并不意味着什么。
var get_img_type = function(url, callback) {
var header;
for (var n = 0; n < valid_image_types.length; n++) {
(function (n) {
var ret = GM_xmlhttpRequest({
method: "GET",
url: preview_to_full(url, valid_image_types[n]),
onreadystatechange: function(res) {
if (res.readyState === 2) { // HEADERS_RECEIVED
console.log(res);
header = getHeader("Content-Type", res.responseHeaders);
if (header == valid_image_types[n]) {
callback(header);
}
}
}
});
})(n);
}
};
{ context: null, finalUrl: null, lengthComputable: null, loaded: null, readyState: 2, response: "", responseHeaders: null, responseText: "", responseXML: null, status: null, ... }