[英]XMLHttpRequest HTTP Headers
我正在嘗試編寫一些腳本來在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瀏覽器的控制台,這些是腳本運行后生成的結果。
我還不能發布圖像,所以這里是結果的鏈接: http : //i.imgur.com/xCyIP.png
我需要以某種方式訪問第4個響應標頭,因為即使此方法未返回任何可解析的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);
});
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.