gpt4 book ai didi

javascript - XMLHttpRequest HTTP header

转载 作者:行者123 更新时间:2023-11-28 09:44:57 24 4
gpt4 key购买 nike

我正在尝试制作一个小脚本来在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com