2016-12-07 2 views
3

У меня есть приложение для реагирования, в котором я хочу, чтобы пользователь мог загружать файлы кода, которые он может затем посмотреть на сайте. Так что, естественно, файлы .json также принимаются. Теперь, чтобы получить содержимое файла, я использую axios, чтобы получить запрос к файлу на сервере.Отключить разбор JSON в Axios

Это прекрасно работает для всех, кроме файлов JSON, которые автоматически анализируются и поэтому недоступны в качестве строки, но как объект javascript. Включение снова в строку с помощью JSON.stringify удаляет все разрывы строк, поэтому я не могу этого сделать.

Есть ли способ остановить аксиомы от автоматического разбора JSON?

+0

вы задали '' responseType' в Text' (по умолчанию 'json')? –

+0

@VedranJukic Я уже пробовал это, но никаких изменений. Я предполагаю, что это из-за того, что тип содержимого задан сервером, но я бы хотел решить это на клиенте, а не изменять свой api. – LuLeBe

ответ

0

Хорошо, я понял, как это будет работать. Вы можете отключить обработку ответа, просто передав в конфигурацию массив transformResponse, который затем используется вместо значения по умолчанию. Там вы просто предоставить пустой массив или массив функций, которые нужно применить к ответу, как это:

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

LuleBes ответить не работало для меня. Что работа: 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