2015-06-25 24 views
5

holt ich bin in der Lage, erfolgreich von einem Objekt abrufen Parst mit dem Befehl unter:Convert curl 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` 

Aber ich bin zu kämpfen, es zu JavaScript-Umwandlung, den Code mit unten I Reaktion mit einem bekommen Status von 200. Ich gehe davon aus Fehler Daten urlencode-Daten konvertiert:

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

Dank!

+1

Ich bin nicht vertraut mit 'fetch', aber es sieht so aus, als sollte es keine einfachen Anführungszeichen um die' Daten' geben, wie 'data: {" where ": {" uid ":" 12312312 "}}' – chiliNUT

+0

@ chiliNUT Ich habe es versucht, die gleiche Antwort wie auch immer, danke aber: 'body: (...), bodyUsed: false, headers: Headers, ok: true, Status: 200, statusText:" OK ", type:" cors ", url: "https://api.parse.com/1/classes/birthday" ' – user3430761

+0

also hast du das behoben? Ich versuche etwas ähnliches, aber ich egal was ich in Daten, sogar falsch formatierte JSON, ich bekomme alle Elemente aus der Klasse/Run. es filtert nichts oder gibt mir Fehler. wenn ich dasselbe mit curl mache, bekomme ich "json error", was das richtige ist, um – pvinis

Antwort

3

Ok also im Grunde brauchen Sie eine andere dann. Es hat also etwas mit Versprechungen zu tun. Habe ich es aus, nachdem dieses ehrfürchtige Artikel lesen http://blog.gospodarets.com/fetch_in_action/

Was brauchen Sie diese

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

} 

zu tun ist, verstehe ich nicht wirklich, warum Sie zurück response.text haben(). Wieder hat es etwas verspricht zu tun

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

Denn wenn ich Zugriff auf response.text() aus dem ersten dann. Es gibt ein Versprechen zurück.

Hoffentlich kann ein anderer Gentleman kommentieren und erklären, warum response.text() das Versprechen in die Daten verwandelt, die Sie brauchen.

--EDIT--

Ich habe einige kehrt zu zeigen, wie Sie die Antwortdaten als ein Objekt zurückgeben aus haben getObject können. So

var d = getObject(); 

wird die Antwort als js Objekt jetzt zurück.

+0

Ja Charles! Ich liebe dich: D – Pixelomo

9

Da ich das oft machen wollte, machte ich https://kigiri.github.io/fetch/, Sie können einen curl-Befehl kopieren/einfügen, der Ihnen den Fetch-Code gibt.

Sie können die Quelle auschecken, wenn Sie sie anders verwenden möchten.

+0

Funktioniert nicht mit -F Params. – user3696212

+0

@ user3696212 Ich habe die Unterstützung für -F hinzugefügt, probieren Sie es aus und sagen Sie mir, wenn Sie ein Problem damit haben. – kigiri

+0

Segne dich dafür, dass du das gemacht hast! – Ben