2015-06-25 2 views
5

मैं सफलतापूर्वक नीचे आदेश का उपयोग पार्स से एक वस्तु पुनः प्राप्त करने में सक्षम हूँ:Convert प्राप्त कर्ल करने के लिए जावास्क्रिप्ट लाने

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` 

लेकिन मैं इसे जावास्क्रिप्ट को बदलने के लिए संघर्ष कर रहा हूँ, कोड का उपयोग कर नीचे मैं एक साथ प्रतिसाद मिलेगा 200 की स्थिति।

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) 
    }) 
} 

धन्यवाद: मैं त्रुटि परिवर्तित डेटा-urlencodeकरने के लिए डेटा मान!

+1

मैं 'fetch' से परिचित नहीं हूं लेकिन ऐसा लगता है कि 'डेटा' के आसपास एकल उद्धरण नहीं होना चाहिए, जैसे डेटा: {" where ": {" uid ":" 12312312 "}}' – chiliNUT

+0

@ मिर्चनेट बस कोशिश की, वही प्रतिक्रिया किसी भी तरह से, धन्यवाद हालांकि: 'शरीर: (...), bodyUsed: झूठी, शीर्षलेख: शीर्षलेख, ठीक है: सच, स्थिति: 200, स्थिति पाठ: "ठीक है", टाइप करें: "cors", यूआरएल: "https://api.parse.com/1/classes/birthday" ' – user3430761

+0

तो क्या आपने इसे ठीक किया? मैं कुछ इसी तरह की कोशिश कर रहा हूं, लेकिन मुझे कोई फर्क नहीं पड़ता कि मैंने डेटा में क्या रखा है, यहां तक ​​कि विकृत जेसन भी, मुझे कक्षा/रन से सभी आइटम मिलते हैं। यह कुछ भी फ़िल्टर नहीं कर रहा है, या मुझे त्रुटियां दे रहा है। जब मैं कर्ल के साथ ऐसा करता हूं, तो मुझे "जेसन त्रुटि" मिलती है, जो – 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 का उपयोग पहले फिर से। यह एक वादा करता है।

उम्मीद है कि कुछ अन्य प्रकार के सज्जन टिप्पणी कर सकते हैं और समझा सकते हैं कि प्रतिक्रिया वापस लौटने का जवाब .text() आपके इच्छित डेटा में वादा करता है।

--EDIT--

मैं दिखाने के लिए आप कैसे GetObject एक वस्तु के रूप में प्रतिक्रिया डेटा बाहर वापसी हो सकता है कुछ रिटर्न गयी। तो

var d = getObject(); 

अब जेएस ऑब्जेक्ट के रूप में प्रतिक्रिया वापस कर देगा।

+0

हां चार्ल्स! मैं तुमसे प्यार करता हूँ: डी – Pixelomo

9

चूंकि मैं अक्सर ऐसा करना चाहता था, इसलिए मैंने https://kigiri.github.io/fetch/ बनाया, आप एक कर्ल कमांड कॉपी/पेस्ट कर सकते हैं, यह आपको फ़ेच कोड देगा।

यदि आप इसे अलग-अलग उपयोग करना चाहते हैं तो आप स्रोत को चेकआउट कर सकते हैं।

+0

-F पैरा के साथ काम नहीं करता है। – user3696212

+0

@ user3696212 मैंने -F के लिए समर्थन जोड़ा, इसे आज़माएं और मुझे बताएं कि क्या आपको इसके साथ कोई समस्या है। – kigiri

+0

इसे बनाने के लिए आपको आशीर्वाद दें! – Ben

संबंधित मुद्दे