2015-06-25 70 views
5

我能夠從parse使用以下命令成功檢索對象:轉換捲曲GET到JavaScript擷取

curl -X GET \ 
-H "X-Parse-Application-Id:1231231231" \ 
-H "X-Parse-REST-API-Key: 131231231" \ 
-G \ 
--data-urlencode 'where={"uid":"12312312"}' \ 
https://api.parse.com/1/classes/birthday` 

但我掙扎將其轉換爲JavaScript,使用下面的代碼我會得到響應與狀態200。我認爲錯誤是將數據進行urlencode數據

var getObject = function { 
    var url = "https://api.parse.com"; 
    url += '/1/classes/birthday'; 

    fetch(url, { 
     method: 'GET', 
     headers: { 
      'Accept': 'application/json', 
      'X-Parse-Application-Id': '12122', 
      'X-Parse-REST-API-Key': '12121', 
      'Content-Type': 'application/json', 
     }, 
     data: '{"where":{"uid":"12312312"}}' 

    }) 
    .then(function(request, results) { 
     console.log(request) 
     console.log(results) 
    }) 
} 

謝謝!

+1

我對'fetch'並不熟悉,但它看起來應該不像'data'那樣有單引號,就像'data:{「其中」:{「uid」:「12312312」}}' – chiliNUT

+0

@ chiliNUT剛剛嘗試過,相同的響應方式,謝謝雖然:'body:(...),bodyUsed:false,headers:Headers,ok:true,status:200,statusText:「OK」,type:「cors」,網址:「https://api.parse.com/1/classes/birthday」' – user3430761

+0

你是否解決了這個問題?即時嘗試類似的東西,但我不管我把數據,甚至格式不正確的JSON,我從類/運行的所有項目。它沒有過濾任何東西,或給我錯誤。當我做同樣的捲曲,我得到「json錯誤」,這是正確的事情得到 – pvinis

回答

3

好,所以基本上你需要另一個。所以這與承諾有關。我想通了閱讀這篇文章真棒http://blog.gospodarets.com/fetch_in_action/

後,你需要做的是什麼

var getObject = function { 
    var url = "https://api.parse.com"; 
    url += '/1/classes/birthday'; 

    return fetch(url, { 
     method: 'GET', 
     headers: { 
      'Accept': 'application/json', 
      'X-Parse-Application-Id': '12122', 
      'X-Parse-REST-API-Key': '12121', 
      'Content-Type': 'application/json', 
     }, 
     data: '{"where":{"uid":"12312312"}}' 

    }) 
    .then(function(response) { 
    return response.text(); 
    }) 
    .then(function(data){ 
    console.log(data); //this will just be text 
    var data_obj = JSON.parse(data); 
    return data_obj 
    }) 

} 

我真的不明白你爲什麼要返回response.text()。再有事情做的承諾

https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

因爲當我訪問response.text()從第一個即可。它返回一個承諾。

希望一些其他類型的紳士可以評論和解釋爲什麼返回response.text()將承諾變成你需要的數據。

- 編輯 -

我加了一些回報,以顯示你如何能夠擁有的getObject返回了響應數據的對象。所以

var d = getObject(); 

現在將返回作爲js對象的響應。

+0

是的查爾斯!我愛你:D – Pixelomo

9

因爲我經常想這樣做,所以我製作了https://kigiri.github.io/fetch/,你可以複製/粘貼一個curl命令,它會給你提取代碼。

如果您想以不同的方式使用它,您可以檢出來源。

+0

不適用於-F params。 – user3696212

+0

@ user3696212我添加了對-F的支持,試用一下並告訴我你是否有任何問題。 – kigiri

+0

祝福你做到這一點! – Ben