2013-06-13 8 views
8

Ich möchte JSON-Datei auf meinem Amazon S3 speichern und dann mit AJAX-Anfrage abrufen. Leider scheint es s3 erlaubt keine Content-Type-Anwendung/JSON ....Es ist möglich, JSON auf Amazon S3 zu speichern?

Ich sollte meine Datei als Text/plain speichern und dann Header mit PHP hinzufügen?

+1

Bei der Verwendung von Content-Typ-Header ist sicherlich gut, sie sind nicht erforderlich. Wenn Sie wissen, dass eine bestimmte Datei JSON enthält, können Sie den Antworttext einfach mit 'JSON.parse' analysieren. Am Ende enthält eine Datei sowieso Text- oder Binärdaten. Die Verarbeitung der Daten ist eine Entscheidung, die der Kunde treffen muss. –

+0

Leider scheint nach einigen Tests der JSON nicht gut formatiert zu sein, wenn ich als Text/Ebene abruft, so dass ich es nicht analysieren kann ... – Tropicalista

+0

Das hat nichts mit Inhaltstyp zu tun. JSON ** ist ** Text. Vielleicht ist dein JSON zu Beginn ungültig? –

Antwort

5

Ich habe das Problem gefunden. Ich habe den JSON falsch parsiert.

$.ajax({ 
    url:"https://s3.amazonaws.com/myBucket/myfile.json", 
    type:"GET", 
    success:function(data) { 
      console.log(data.property) 
    } 
}) 

Statt dies funktioniert:

$.ajax({ 
    url:"https://s3.amazonaws.com/myBucket/myfile.json", 
    type:"GET", 
    success:function(data) { 
     var obj = jQuery.parseJSON(data); 
     if(typeof obj =='object'){ 
      console.log(obj.property) 
     } 
    } 
}) 
+0

Ich kann nicht sagen, warum die zweite funktioniert – Tropicalista

+2

Ich denke, die erste funktioniert magisch, wenn der Inhaltstyp richtig eingestellt ist. Der zweite analysiert explizit als JSON (und bricht wahrscheinlich, wenn Sie den Inhaltstyp korrigieren). – BraveNewCurrency

2

Metadaten ändern 'Wert' in Key: Wertepaar zu 'application/json' von Dateieigenschaften in AWS S3-Konsole.

+0

Der Schlüssel in diesem Fall ist 'Content-Type'. –

Verwandte Themen