Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Загрузка файла на сервер. С авторизацией. (https://javascript.ru/forum/extjs/78892-zagruzka-fajjla-na-server-s-avtorizaciejj.html)

XAPuTOH 19.11.2019 13:51

Загрузка файла на сервер. С авторизацией.
 
В общем есть форма которая содержит поле типа filefield.

Насколько я понимаю через ajax нельзя просто так отправить файл И при отправке формы файл отправляется в динамически созданном iframe и т.п.

https://docs.sencha.com/extjs/6.2.0/...thod-hasUpload

Вопрос как прикрутить к этой отправке заголовок авторизации типа

Authorization: 'Bearer ' + access_token

По скудным кускам инфы на форуме сенчи - это нельзя сделать.

Тогда вопрос кто как решает вопрос с разграничением доступа при заливке файла на сервер?

SuperZen 19.11.2019 14:03

https://elmasse.github.io/nodejs/usi...ith-extjs.html

XAPuTOH 19.11.2019 14:21

Как бы вопросов по остальным запросам на сервер нет.

Сразу во все прописал данный заголовок:
Ext.Ajax.setDefaultHeaders({
                'Authorization': 'Bearer ' + localStorage.getItem('access_token')
            });

Все работает норм.

Вопрос именно по отправке файла. Открывается новый iframe в котором както отправляется файл при этом никаких заголовков не добавляется

SuperZen 19.11.2019 14:31

ajax'ом можно оправлять файлы, iframe это скорее всего костыль под какой-нибудь IE, если не нужна совместимость с IE отправляй через ajax, для iframe можно попробовать https://stackoverflow.com/a/42280209 но оно не дружит с IE...

XAPuTOH 19.11.2019 14:46

Блин как?
Экст сам их отправляет таким образом.
Цитата:

Ext.Ajax.request :
File uploads are not performed using normal "Ajax" techniques, that is they are not performed using XMLHttpRequests. Instead the form is submitted in the standard manner with the DOM <form> element temporarily modified to have its target set to refer to a dynamically generated, hidden <iframe> which is inserted into the document but removed after the return data has been gathered.

SuperZen 19.11.2019 15:07

https://stackoverflow.com/a/44849945

XAPuTOH 20.11.2019 06:52

Спасибо тебе добрый человек!
Уже несколько раз пытался решить данную проблему. Да все только время гробил.

:thanks:


Часовой пояс GMT +3, время: 02:16.