2013-06-13 9 views
8

amazon s3にjsonファイルを保存してから、それをajaxリクエストで取得したいと思います。残念ながら、s3はcontent-type application/jsonを許可していないようです。jsonをamazon s3に保存することは可能ですか?

ファイルをtext/plainで保存してから、ヘッダをPHPで追加する必要がありますか?

+1

コンテンツタイプヘッダーを使用するのは確かに良いですが、必須ではありません。特定のファイルにJSONが含まれていることがわかっている場合は、 'JSON.parse'を使用してレスポンステキストを解析できます。結局、ファイルにはテキストとバイナリのいずれかのデータが含まれています。どのようにデータを処理するかは、クライアントが決定する必要があります。 –

+0

残念なことに、いくつかのテストの後、jsonはテキスト/プレーンとして取り出すことができないので、私はそれを解析できないようです。 – Tropicalista

+0

コンテンツタイプで何もする必要はありません。 JSON **は**テキストです。おそらく、あなたのJSONは最初から無効ですか? –

答えて

5

私はこの問題を発見しました。私は間違った方法でjsonを解析していました。

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

代わりに、これは動作します:キーで

$.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

なぜ私は2番目のものが動作するのかわかりません – Tropicalista

+2

コンテンツタイプが正しく設定されていれば最初のものが魔法のように動作すると思います。 2番目は明示的にJSONとして解析しています(コンテンツタイプを修正するとおそらく壊れるでしょう)。 – BraveNewCurrency

2

変更メタデータの '値':ファイルのプロパティから 'アプリケーション/ JSON' と値のペアを、AWS S3コンソールで。

+0

この場合のキーは 'Content-Type'です。 –

関連する問題