2014-10-19 81 views
0

我決定嘗試一次使用jQuery,因爲它已經包含在頁面中。我發現它有非常方便的$.ajax方法,可以讓你產生可讀的Ajax調用。

我學會了如何add custom headers來電,因爲我需要在Imgur進行授權。這是我的代碼:

$.ajax({ 
    url: 'https://api.imgur.com/3/image', 
    type: 'POST', 
    headers: { 
     Authorization: 'Client-ID ' + APP_ID, 
     Accept: 'application/json' 
    }, 
    data: { 
     image: SavePage.getimgrc(), 
     type: 'base64' 
    }, 
    success: function(result) { 
     var id = result.data.id; 
     window.location = 'https://imgur.com/gallery/' + id; 
    } 
    }); 

好了,不管它是多麼的方便,它並不像宣傳工作:所以

POST /3/image HTTP/1.1 
Host: api.imgur.com 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0 
Accept: */* 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate 
Content-Type: application/x-www-form-urlencoded; charset=UTF-8 
Content-Length: 20956 
Origin: resource://jid0-gxjllfbcoax0lcltedfrekqdqpi-at-jetpack 
Connection: keep-alive 
Pragma: no-cache 
Cache-Control: no-cache 

,是壞了還是我搞砸了?

+0

備註:讓用戶選項允許你想設置的標題 - http://stackoverflow.com/questions/5750696/how-to-get-a-cross-origin-resource-sharing-cors-post-request-工作 – 2014-10-19 18:58:26

+0

這是你的控制檯的輸出? – 2014-10-19 18:58:29

+0

是的,它是螢火蟲輸出。我不明白選項的東西。爲什麼我不能設置任何頭文件來請求? – 2014-10-19 19:03:03

回答

-1

所以我終於明白了這一點。問題是,儘管我以前的經歷,我使用jQuery。本地代碼正常工作:

var r = new XMLHttpRequest(); 
    r.open("POST", 'https://api.imgur.com/3/image'); 
    r.setRequestHeader("Authorization", 'Client-ID ' + APP_ID); 
    r.setRequestHeader("Accept", 'application/json '); 

    var data = new FormData(); 
    data.append("type", "base64"); 
    data.append("image", SavePage.getimgrc()); 

    r.send(data); 

獲得的經驗:jQuery包含在網站中的事實並不意味着它會幫助你。