2016-12-07 14 views
3

Ichには、ユーザがコードファイルをアップロードしてサイトを見てもらいたい反応アプリケーションがあります。 もちろん、.jsonファイルも当然受け入れられます。ファイルの内容を取得するために、axiosを使用して、サーバー上のファイルにget要求を行います。AxiosでJSON解析を無効にする

これはJSONファイル以外はすべて正常に動作します。自動的に解析されるため、文字列としては使用できませんが、javascriptオブジェクトとして使用できます。 JSON.stringifyで再び文字列に変換すると、すべての改行が削除されるので、それはできません。

アキシャスが自動的にJSONを解析するのを防ぐ方法はありますか?

+0

あなたは(デフォルトは 'json'ある)text''に 'responseType'を設定していますか? –

+0

@VedranJukic私はそれを試しましたが、変更はありません。サーバーによって設定されたコンテンツタイプのためだと思いますが、私はapiを変更する代わりにクライアントでこれを解決したいと思っています – LuLeBe

答えて

0

私はそれがどのように機能するかを理解しました。 configのtransformResponse配列を渡すだけでレスポンス処理を無効にすることができます。これは、デフォルトの代わりに使用されます。そこには、ちょうどこのように、空の配列またはあなたがあなたの応答に適用する必要がある関数の配列を提供します。

axios.get(URL, {transformResponse: []}) 
.then(response => {/*response.data is plain text*/}); 
1

LuleBesは私のためにdidntの仕事に答えます。どのような仕事をしたことだった。同様に transformResponse: (req) => { return req; },

axios.get(url, { 
     headers, 
     transformResponse: (req) => { 
      // Do your own parsing here if needed ie JSON.parse(req); 
      return req; 
     }, 
     responseType: 'json' 
    }).then(response => { 
     // response.data is an unparsed string 
    }); 
+0

response.dataは空のオブジェクトです。空のオブジェクトではなく、ファイルの内容が必要です。ここで何をしているのか分かりません。変換関数がデータを受け取り、空の文字列だけを返すことがわかります。 – LuLeBe

+0

ops、私のアプリのテストから変更するのを忘れました。今答えは質問を反映するはずです。 – user3711421

関連する問題