2017-04-09 45 views
0

我正在使用Discogs API開發Aurelia.io應用程序。那麼,這是Javascript,可能不知道Aurelia的人(我不知道它是否有名)。Aurelia和Discogs API

我寫這篇文章(當然XXX是真實值):

import {HttpClient} from 'aurelia-http-client'; 
let client = new HttpClient() 
      .configure(x => { 
      x.withHeader('User-Agent', 'myApp/0.1'), 
      x.withHeader('Authorization', 'Discogs key=xxxxx, secret=xxxxx'), 
      x.withHeader('Access-Control-Allow-Origin', '*') 
      }); 


     client.get('https://api.discogs.com/releases/'+value.discogsReference) 
      .then(data => { 
      console.log(data.tracklist[value.releasePosition]); 
      }); 

其實,我的要求是行不通的。 這裏是Firefox是發送標題,而我想給其他的,你可以在我的代碼中看到:

Host: api.discogs.com 
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate, br 
Access-Control-Request-Method: GET 
Access-Control-Request-Headers: access-control-allow-origin,authorization,user-agent 
Origin: http://localhost:9000 
Connection: keep-alive 

顯然,我想迫使頭部沒有考慮。

這裏是法國的消息,我得到在控制檯(我沒有在網絡上找到的翻譯):

Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur https://api.discogs.com/releases/2275022. Raison : jeton « access-control-allow-origin » manquant dans l’en-tête CORS « Access-Control-Allow-Headers » du canal de pré-vérification des requêtes CORS. 

我在做什麼錯? 感謝

塞薩爾

+0

它與Aurelia無關,它更多地取決於您訪問的API。有關更多信息,請搜索[CORS](https://en.wikipedia.org/wiki/Cross-origin_resource_sharing)以允許您的客戶端訪問API。 – janmvtrinidad

+0

標題未添加到API請求中。 – Rifaj

回答

0

好的我以錯誤的方式處理了這個問題。 事實上,我不可能像我一樣聯繫Discogs API。您必須使用訪問Discogs API的Web服務。 因此,我使用libcurl創建了一個自定義本地節點webservice(https://www.npmjs.com/package/node-libcurl)。我的aurelia調用這個web服務,libcurl允許我用適當的頭文件調用Discogs API。 Phew,我做到了,但是我遇到了其他問題,我將發佈關於stackoverflow的其他問題...

0

試試這個。

let client = new HttpClient() 
     .configure(x => { 

     x.withInterceptor({ 
      request(request) { 
      request.headers.append('User-Agent', 'myApp/0.1'); 
      request.headers.append('Authorization', 'Discogs key=xxxxx, secret=xxxxx'); 
      request.headers.append('Access-Control-Allow-Origin', '*'); 
      } 
     } 
    }); 
+0

感謝您的回答。不幸的是,它也不起作用。我找到了一個解決方案,我會發布它。 – djcaesar9114