У меня есть кнопка в моем приложении reactjs, которая при нажатии должна загружать файл. Мне нужно отправить токен с запросом, чтобы пользователь мог загрузить файл. Как мне отправить токен с его помощью? Если бы это был ajax, я бы отправил токен в заголовке.
Это мой код
<div className = "btn btn-default obj-export-btn" onClick = {this.exportObjectReport.bind(this)}><span className = "fa fa-download"></span></div>
exportObjectReport(){
window.location = url + "get_labels/";
}
exportObjectReport предназначен для загрузки файла.
Я пробовал использовать ajax. Но тогда файл не загружается. Ajax имеет успех, но не загружается.
exportObjectReport(){
// window.location = this.props.video_file_selected.file_url + "get_labels/";
var that = this;
var existing_face_array = [];
var settings = {
"async": true,
"crossDomain": true,
"url": url + "get_labels/",
"method": "GET",
"headers": {
Authorization: "Token " + that.props.token_Reducer.token
},
success: function (response, textStatus, jQxhr) {
console.info('export success')
},
}
$.ajax(settings).done((response) => {
});
}
Ajax не скачивает файл. Он выполняется успешно, но загрузка не выполняется. Пожалуйста, посмотрите мой обновленный код.
Возможный дубликат Добавление заголовка HTTP-запроса к ссылке href



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете попробовать отправить его как параметр запроса:
exportObjectReport(){
window.location = url + "get_labels/" + "?token=YOUR_TOKEN";
}
а затем проверьте его на сервере.
Это очень распространенный шаблон в различных общедоступных API
взято отсюда: stackoverflow.com/questions/35236874/… - вы не можете ничего передать через заголовки во время перенаправления.
Во-первых, можно использовать JQuery с React, но это не рекомендуется, поскольку это две библиотеки, которые делают одно и то же (манипулируют DOM). Вместо этого используйте библиотеку, созданную специально для выполнения запросов, или используйте запросы XHR.
Ответ на ваш вопрос уже существует здесь: https://stackoverflow.com/a/23797348/2668734
Ответ содержит как решение XHR, так и решение JQuery.
Есть ли причина, по которой вы не загружаете файл с помощью AJAX?