Задать вопрос
@accountnujen

Может ли браузерный javascript обработать post запрос?

Я не могу использовать серверный язык. В моём распоряжении только javascript (браузерный) и HTML.
Два файла index.html и server.html
В файле index.html я имею форму отправки картинки. Можно ли на server.html отправить запрос, чтобы он, к примеру, вернул мне в index.html название и размер файла в виде json?
  • Вопрос задан
  • 209 просмотров
Подписаться 1 Простой 8 комментариев
Решения вопроса 3
NeiroNx
@NeiroNx
Программист
Нельзя.
Ответ написан
Комментировать
Браузерный js работает только в браузере и не имеет доступа к файлам на сервере и не может никак обрабатывать запросы, которые на сервер поступают.

Обработать post-запрос, в твоём случае, может только веб сервер.

Но узнать размер картинки и название файла ты можешь и без отправки файла на сервер
Ответ написан
Комментировать
Aetae
@Aetae Куратор тега JavaScript
Тлен
В комментах мы нашли решение настоящей проблемы автора вопроса, однако для тех кто будет искать после, как заметил там же Lynn «Кофеман», таки есть одно решение которое будет работать, ServiceWorker с примерно таким кодом:
self.addEventListener('fetch', (event) => {
  const path = event.request.url.replace(location.origin, '');
  
  if (event.request.method === 'POST' && path === '/byFile') {
    return event.respondWith(
      event.request.formData().then(async (data) => {
        const file = data.get('image');
        
        let resonse = { success: false };
        
        if (file) {
          // await api call
          const { name, size } = file;
          resonse = { success: true, name, size };
        }
        
        return new Response(JSON.stringify(resonse));
      })
    );
  }
});

Он позволит перехватывать все POST запросы к url /byFile и таки делать с этими запросами что хочешь.

Но, конечно, так делать ни в коем случае не стоит. Скорее всего ваша задача, как и у автора поста, имеет простое и элегантное решение, не требующее подобных извращений.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@artem-dainov
Php, java, js. Boot spring, jquery, git
Если нужно просмотреть размер картинки, или посмотреть изображение, а может посмотреть видео или послушать аудио, то браузерный javascript это умеет делать без сервера.
Для этого вам нужно сделать форму, через которую можно выбрать файл на вашем устройстве. А далее все это обработать через javascript, воспользовавшись объектом files[0]
Если вы обратитесь к files[0]['name'], Получите имя файла, а воспользовавшись files[0]['size'], получите размер в байтах.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы