У меня есть кнопка в моем приложении responsejs, который при нажатии должен загрузить файл. Мне нужно отправить токен с запросом, чтобы пользователь мог загрузить файл. Как я могу отправить токен с ним? Если бы это был 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.log('export success')
},
}
$.ajax(settings).done((response) => {
});
}
Во-первых, можно использовать JQuery с React, но не рекомендуется, так как это две библиотеки, которые делают одно и то же (манипулирование DOM). Вместо этого используйте библиотеку, созданную специально для запросов или использования XHR-запросов.
Ответ на ваш вопрос уже существует здесь: qaru.site/questions/23644/...
Ответ содержит как решение XHR, так и решение JQuery
Вы можете попробовать и отправить его в качестве параметра запроса:
exportObjectReport(){
window.location = url + "get_labels/" + "?token=YOUR_TOKEN";
}
а затем проверить его на сервере.
Это очень распространенный шаблон для различных публичных API