#ajax #reactjs #file #import #xmlhttprequest
#ajax #reactjs #файл #импорт #xmlhttprequest
Вопрос:
Я пытаюсь импортировать файл в мое приложение ReactJS, используя XMLHttpRequest. Файл находится в том же приложении, однако ответ всегда не определен. Тип ответа на запрос — ‘blob’. Это соответствующий код:
var proxyUrl = 'https://cors-anywhere.herokuapp.com/',
targetUrl = require('./test.xlsx');
var oReq = new XMLHttpRequest();
oReq.open('get',proxyUrl targetUrl, true);
oReq.responseType = 'blob';
oReq.onload = function () {
var blob = oReq.response;
};
oReq.send();
proxyUrl предназначен для предотвращения ошибки CORS, поскольку это ajax-запрос. Будем признательны за любую помощь.
Комментарии:
1. разве вы не должны использовать
oReq.onreadystatechage
thanoReq.onload
?2. Используете ли вы Create React App? Вы могли бы поместить свой файл в
public
каталог и просто извлечь из корня:fetch('/test.xlsx')
3. @sthotakura использование onreadystatechange также не имеет значения
Ответ №1:
Найдено решение — необходимо импортировать файл и использовать его в XMLHttpRequest
import file from './test.xlsx';
componentDidMount() {
var oReq = new XMLHttpRequest();
oReq.open('get', file , true);
oReq.responseType = 'blob';
oReq.onload = function () {
var blob = oReq.response;
};
oReq.send();
}