javascript - XMLHttpRequest HTTP header

标签 javascript google-chrome xmlhttprequest

我正在尝试制作一个小脚本来在 imgur 上重新托管网络上的图片。

这称为图像侧载,您只需将浏览器指向 http://api.imgur.com/2/upload?url= + 图片网址

它不会返回任何 XML 或 JSON 响应,因此我无法解析它以获取 img URL。

但我想我找到了一种方法来做到这一点,但无法让它正常工作。这是我正在使用的代码。

$(document).ready(function() {
    $("#button").click(function() {
        str = $("input").val().toString();
        link = "http://api.imgur.com/2/upload?url=" + str;
        var xhr = new XMLHttpRequest();
        xhr.open("GET", link);
        xhr.send();
        var headers = xhr.getAllResponseHeaders().toLowerCase;
        alert(headers);

    });

});

查看 Google Chrome 的控制台,这些是脚本运行后生成的结果。

我还不允许发布图像,所以这里是结果的链接:/image/zAKC2.png

我需要以某种方式访问​​第四个响应 header ,因为即使此方法不返回任何可解析的 XML 或 JSON 响应,该链接也是上传的 img 的 URL,这就是我所需要的。

那么有没有办法访问该信息?为什么取消了?

谢谢大家!

最佳答案

好吧,API 必须返回一些东西,否则就没用了。

实际上,http://api.imgur.com/examples建议您这样做:

var xhr = new XMLHttpRequest();
xhr.open("GET", link);
xhr.onload = function() {
    var url = JSON.parse(xhr.responseText).upload.links.imgur_page;
    alert(url);
}
xhr.send();

编辑。好的,我明白了。通常,上面的代码应该可以工作,但我认为 imgur 遇到了问题。我会报告该错误。

虽然错误仍然存​​在,但这里有一个肮脏的解决方案来满足您的需求:

var xhr = new XMLHttpRequest();
xhr.open("GET", link);
xhr.onload = function() {
    html = xhr.responseText;
    alert(html.substr(html.indexOf('http://i.imgur.com/') + 19, 5));
}
xhr.send();

您的代码无法运行,因为您没有等待答案。您必须通过回调函数捕获它。

编辑。以上代码仅在本地有效。当您使用 jQuery 时,让我介绍一下快捷方式 $.post:

$(document).ready(function() {
    $("#button").click(function() {
        $.post('http://api.imgur.com/2/upload.json', {
            key: 'ec575de603b936e54c2b4a9f232d537e',
            image: $("input").val().toString()
        }, function(data) {
            alert(data.upload.image.hash);
        });
    });
});​

http://jsfiddle.net/Le_Sphinx/rEfdS/

关于javascript - XMLHttpRequest HTTP header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892682/

相关文章:

google-chrome - 更改 Chrome 4xx 页面

css - 用于删除粗体文本的 Wow JS 解决方案在 Macbook Pro (Google Chrome) 上不起作用

JavaScript:如何从同一 URL 获取 "refresh"数据?

javascript - 得到呈现的DIV高度

javascript - SameSite 警告 Chrome 77

javascript - 将本地文件中的 json 数据加载到 React JS 中

javascript - 如何忽略 XmlHttpRequest 中的自签名证书

javascript - Cufon 与悬停混淆

javascript - 如何使用包装器控制按钮的切换

javascript - 无法读取未定义的属性 'disguiseToken'