2014-05-19 81 views
0

我寫了一個代碼,允許我通過表單選擇圖像後顯示圖像,然後在api上自動加載圖像。Imgur,加載圖片時出現錯誤的請求

僅工作的函數來顯示圖像,當我發送上傳的請求時,它會返回錯誤400

代碼加載圖像:

if (file.files && file.files[0]) { 

      console.log('caricamento immagine: '+file.value); 

      $.ajax({ 
       url: 'https://api.imgur.com/3/image', 
       headers: { 
        'Authorization': 'Client-ID (my id)' 
       }, 
       type: 'POST', 
       data: { 
        'image': file.value 
       }, 
       success: function(data) { 
        var uri = data['upload']['links']['imgur_page']; 

        console.log(uri); 
       }, 
       error: function(e) { 
        console.log(e); 
       } 
      }); 

      return false; 
} 

回答

0

這可能是因爲上傳圖片的URL有與請求它們不同的端點。試着改變你的URL的AJAX請求:

url: 'https://api.imgur.com/3/upload' 

還要確保爲image屬性的數據或者是一個Base64,二進制或您要上傳圖片的URL。否則,你會得到一個錯誤。此外,你應該告訴Imgur其中鍵入要使用,舉例來說,如果你的Base64編碼的圖像數據的對象應該是這樣的:

data: { 
    image: 'ZmlsZW5hbWU=', // example base64 string 
    type: 'base64' 
} 

定義類型不是必需的,但它使時間縮短它需要上傳,因爲它不需要解析字符串。

該API的規範可以找到here。如果你想走那條路線,你也可以查看這個PHP函數base64_encode()

+0

不幸的是我又得到了同樣的錯誤。現在我的代碼是這樣的:'image:btoa(file.value)'我使用函數** btoa()**將一個字符串編碼爲base64。這是對請求的回答:'{「data」:{「error」:「圖像格式不被支持,或者圖像被破壞。」,「request」:「\/3 \/upload」,「method」:「 POST 「},」 成功 「:假的,」 狀態「:400}' – Edoardo

相關問題