簡體   English   中英

XMLHttpRequest HTTP標頭

[英]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);
        });
    });
});​

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM