Урок 14. JavaScript. Запросы на сервер. Fetch, XMLHttpRequest (XHR), Ajax

Поделиться
HTML-код
  • Опубликовано: 15 окт 2019
  • Эксклюзивный контент на моем Boosty: boosty.to/vladilen
    Telegram: t.me/js_by_vladilen
    Instagram: / vladilen.minin
    Roadmap по каналу:
    vladilen.notion.site/Roadmap-...
    Исходный код:
    gist.github.com/vladilenm/557...
    Урок 14. JavaScript. Запросы на сервер. Fetch, XMLHttpRequest (XHR), Ajax
    Сложный JavaScript простым языком:
    • Урок 1. JavaScript. Чт...
    #ajax #javascript #fetch

Комментарии • 291

  • @VladilenMinin
    @VladilenMinin  4 года назад +5

    Результаты конкурса будут завтра :)
    Эксклюзивный контент на моем Boosty: boosty.to/vladilen

    • @nilsen1879
      @nilsen1879 4 года назад

      Только сейчас дошло, как решить задачку.

  • @Selieznov
    @Selieznov 3 года назад +196

    Вот это мужик, вот как надо рассказывать, я несколько часов слушал разных индусов, но ни один и в подметки не годится. Спасибо тебе, Бро!!!

    • @user-hz3zd3nz6h
      @user-hz3zd3nz6h 3 года назад +20

      ну про индусов ты загнул

    • @yaroslavzef7267
      @yaroslavzef7267 3 года назад +1

      МУЖЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫК!

    • @artemijeka
      @artemijeka 2 года назад

      индус - это принадлежность к религии

    • @user-gy6wd8jj2j
      @user-gy6wd8jj2j 2 года назад +2

      @@user-hz3zd3nz6h я тоже индусов смотрела😅 не поверите, но все получалось только по их урокам, не надо на них гнать

    • @user-uz4yu6qk1r
      @user-uz4yu6qk1r 11 месяцев назад

      Так он нихрена нормально и не рассказал

  • @Blue-oy7tz
    @Blue-oy7tz 4 года назад +63

    Мужик, делай то что ты делаешь. Я чуть с ума не сошел пока искал эту инфу в понятном и доступном виде в сети. Пришлось самому всё понимать кое-как, и то не всё. И тут, хвала алгоритмам ютуба, появился ты.
    еще раз спасибо + лайк + подпискам (:

  • @zmeygorynych5684
    @zmeygorynych5684 3 года назад +12

    Вот это я понимаю качественный контент, разложил по полочкам. Владилен, спасибо)

  • @vladislavozinkovskyi8276
    @vladislavozinkovskyi8276 3 года назад +5

    очень толково.
    Разложил все по полочкам.
    Просто и лаконично.
    Для введения самое оно

  • @user-QesOrwuMqN
    @user-QesOrwuMqN 3 года назад +57

    Хочу отметить разницу между Fetch и XHR: при отправке файлов/больших payload'ов на сервер XHR - позволяет получать прогресс загрузки файла на сервер, в то время как Fetch этой информации не предоставляет

  • @ivankalashnikov7700
    @ivankalashnikov7700 2 года назад

    Смотрел кучу видео на эту тему, ваше - лучшее! Огромное спасибо за качественный контент и удачи вашему каналу!

  • @pavelalekseev5849
    @pavelalekseev5849 4 года назад +2

    Очень клевое расширение для Гитхаба, спасибо Владилен. Даже пассивно умеешь помогать :)

  • @evgeniiak7458
    @evgeniiak7458 Год назад

    Обожаю Ваши видео. Всегда всё четко и по делу. Спасибо большое за труд!

  • @user-hd9oq3td7z
    @user-hd9oq3td7z 3 месяца назад

    Спасибо большое за этот видео урок, обыскал весь интернет, но некто так грамотно как вы не смог рассказать а тут всё ясно и понятно , 😎

  • @vallery1395
    @vallery1395 Год назад

    Огромное спасибо! Я тоже пересмотрела на эту тему много видео. Это - лучшее из всех! Удачи!!!

  • @evgeny9242
    @evgeny9242 4 года назад

    круто, действительно очень познавательно, как только появятся деньги отблагодарю, курс куплю или задоначу, очень понятно, а главное отвечает на все вопросы которые мучали раннеее

  • @SWIBORG-X
    @SWIBORG-X 10 месяцев назад +1

    Это не единственный канал по программированию, но единственный с автором, который так хорошо объясняет. Спасибо за знания!

  • @ups7write
    @ups7write 4 года назад +2

    Отлично! Спасибо. Хорошие уроки. Пришлось про CORS погуглить :)

  • @user-pg2tc5im5u
    @user-pg2tc5im5u 4 года назад +3

    спасибо большое, раньше использовал только axios,ajax(jquery) теперь в курсе про нативные методы

  • @skrillex8334
    @skrillex8334 3 года назад +2

    Огромное спасибо! Продолжай в том же духе! Очень жду роликов по выполнению каких-то проектов на реакте.

  • @denzelwash33
    @denzelwash33 3 года назад

    Шикарное объяснение, ты прям прирожденная училка!)

  • @vitalijslavrinovics8756
    @vitalijslavrinovics8756 3 года назад

    Благодарю за то что помогаешь обучаться разработке на javascript!

  • @strikerorion5290
    @strikerorion5290 2 года назад +1

    Спасибо, классное и подробное объяснение, удивляюсь что подписчиков не раза в 2 - 3 минимум, больше.

  • @smartbrain4623
    @smartbrain4623 4 года назад +4

    Спасибо! Отличные уроки по js. Все ясно понятно. Ну прям огонь🔥

  • @Max-kr4ie
    @Max-kr4ie 4 года назад +33

    Хорошо все разобрал, говорим тебе спасибо!

  • @irinabaranova9236
    @irinabaranova9236 11 месяцев назад

    Спасибо большое, Владилен! 😍😍😍

  • @uaplatformacomua
    @uaplatformacomua 4 года назад +1

    Супер! Надеюсь, это мне поможет всё-таки сделать тестовое задание

  • @user-fx8rm4kw2y
    @user-fx8rm4kw2y 4 года назад +1

    класс. как раз сейчас работаю с с запросами. прям вовремя

  • @gevorgmartirosyan2142
    @gevorgmartirosyan2142 3 года назад +1

    спасибо агромное, вот я наконец понял что запросы и как они работают

  • @weekendshow7567
    @weekendshow7567 Месяц назад

    Этот урок классно объяснил🎉

  • @user-vc5xs1no7m
    @user-vc5xs1no7m 4 года назад +9

    Владилен, спасибо большое тебе за твой труд! Однозначно ЛАЙК!!!
    Просьба, сделай пожалуйста подробный гайд по axios!

  • @user-ie2gm8bp5v
    @user-ie2gm8bp5v 4 года назад +7

    Владилен, запиши видос про графику на canvas, никогда этим не пользовался и не сталкивался, но очень было бы увидеть и послушать профессионала на эту тему. Ты же вроде разбирался с этим как раз, когда в конкурсе Telegram участвовал, вот было бы очень интересно послушать как ты все писал и как работать с графикой

  • @alifox6056
    @alifox6056 4 года назад +2

    Досмотрел плейлист. Спасибо за уроки !

  • @user-uo7iv6bw5l
    @user-uo7iv6bw5l 4 года назад

    Спасибо огромное разобрали супер. поставил бы два лайка даже. подписался.

  • @user-up1xl1ef5e
    @user-up1xl1ef5e 2 года назад

    Это ШЕДЕВРАЛЬНО!

  • @user-qc2uk8iy6d
    @user-qc2uk8iy6d 4 года назад +3

    Спасибо огромное за ваши уроки! Хоть по темам уже ушли далеко вперед, но было бы неплохо услышать про DOM/BOM с вашими пояснениями. Заранее спасибо

  • @sevenpages7068
    @sevenpages7068 4 года назад +7

    Владилен, спасибо тебе за твои видео. Очень помогают!
    Нет ли у тебя в планах записать мастер класс по DevTools бразуера?
    У тебя очень много уроков в которых ты объясняешь, как что-то сделать с нуля, с этим все более-менее понятно. Мог бы ты записать какой-нибудь курс, в котором ты бы взял какой-нибудь open-source проект, и показал от и до, как разобраться в новом проекте, с чего начать, как правильно читать код, как структурировать полученную информацию и приступить к допиливанию своего функционала. (Лично меня интересуют проекты на Angular и чистом JS).

  • @yatut4467
    @yatut4467 2 года назад +2

    Спасибо, очень и очень полезно и понятно. Только в названии еще Ajax упоминается, но что-то вроде бы в ролике ни слова не было.

  • @AsVit
    @AsVit 4 года назад +1

    Урок пройден) Спасибо!!! Очень круто все разобрано, все понятно! Супер!

  • @dmitryivanov3200
    @dmitryivanov3200 4 года назад

    Спасибо, Владилен!

  • @user-nz5ln7bj5c
    @user-nz5ln7bj5c 4 года назад

    Спасибо за урок!

  • @user-nb1is5wc4k
    @user-nb1is5wc4k Год назад

    Спасибо, очень полезное видео.

  • @unknown.6914
    @unknown.6914 6 месяцев назад

    урок правда полезный, спасибо

  • @name-yy9yu
    @name-yy9yu 4 года назад +2

    лучший канал) спасибо

  • @MrReflection540
    @MrReflection540 4 года назад +7

    Реально, практически идеальный урок!
    Единственное из-за чего картина не совсем до конца складывается, так это из-за того, что были опущены async/await, а также очень хотелось бы увидеть наглядный пример serialize у ajax, но используя fetch

    • @user-no6il5pi8n
      @user-no6il5pi8n 2 месяца назад

      есть отдельное видео по async await и промисы

  • @user-cy2td3lg8t
    @user-cy2td3lg8t Год назад

    Большое спасибо за видео!

  • @buksirchik1663
    @buksirchik1663 4 года назад +3

    Fetch как раз учу сейчас, спасибо за подгон)

  • @cheesecheesson9842
    @cheesecheesson9842 3 года назад

    Смотрю с удовольствием. Спасибо, Владилен!

  • @de17eon50
    @de17eon50 4 года назад

    Огонь, теперь хватает знаний чтобы полчить данные со своего REST api

  • @alex_k21
    @alex_k21 4 года назад +1

    уроки ТОП! всё чётко и по полочкам.
    спасибо!

  • @Peter-vz4tb
    @Peter-vz4tb 4 года назад

    Теперь хоть разобрался зачем был нужен XMLHttpRequest. Спасибо.
    Хотелось бы разобрать как правильно проектировать бекенд + фронт. А то столько мнений не знаешь кто прав.

  • @kvaqich
    @kvaqich 3 года назад

    Супер. Полдня убил на понимание запросов. С jQuery ajax всё получалось, а native js не поддавался.

  • @EvgenichTalagaev
    @EvgenichTalagaev 2 года назад

    Спасибо за видео!

  • @user-gu5ir3zs4v
    @user-gu5ir3zs4v 4 года назад +3

    Юзал свой jQuery, до фетча все никак не добирался, и наконец у тебя вышел такой видосик, хоть уже что-то и есть про фетч, но тут более понятней и подробней. Пасеба , сэр!

    • @astrotrain
      @astrotrain 4 года назад +1

      Я бы всё же советовал пользовать axios, если хоть какая-то совместимость в проекте нужна, он такой же удобный, но использует xhr.

    • @user-gu5ir3zs4v
      @user-gu5ir3zs4v 4 года назад

      @@astrotrain как axios использовать на фронте?

    • @astrotrain
      @astrotrain 4 года назад

      @@user-gu5ir3zs4v в смысле как?
      axios({
      url,
      method,
      data
      }).then(({data}) => {
      console.log(data);
      })

    • @user-gu5ir3zs4v
      @user-gu5ir3zs4v 4 года назад

      @@astrotrain так а как его подключить это же npm модуль

    • @astrotrain
      @astrotrain 4 года назад

      @@user-gu5ir3zs4v если есть вебпак просто импортом, если нет - то как жуквери
      github.com/axios/axios#installing

  • @kotovadana
    @kotovadana 4 года назад +2

    По-моему еще ЛУЧШЕ все это рассказать просто не возможно. Большое спасибо за видео! Мне кажется, если вы сейчас начнете выкладывать обучающие видео о том, как правильно строить дома - я подамся в строители, потому что ваши видео смотреть - одно удовольствие ! :D :)))

  • @user-vx6mp6di4o
    @user-vx6mp6di4o 4 года назад

    Очень крутой канал! предлагаю рассказать про Регулярные выражения мне кажется интересная тема.

  • @horizon3208
    @horizon3208 9 месяцев назад

    спасибо огромное! очень помог!

  • @kirillbaryba746
    @kirillbaryba746 4 года назад

    Спасибо, здорово

  • @NeedForHeavyMetal
    @NeedForHeavyMetal 2 года назад

    всё круто, лайк подписка! Было бы ещё круче если б делал пометки // хотя б простенькие) спасибо)

  • @user-gu2lf6tr8m
    @user-gu2lf6tr8m 2 года назад

    крутая подача! все четко, без H2O

    • @oz9608
      @oz9608 2 года назад

      Согласен)

    • @oz9608
      @oz9608 2 года назад

      Даже под C2H5OH хорошо заходит)

  • @user-ql4xu5qu2u
    @user-ql4xu5qu2u 4 года назад +1

    Поддерживаю, что нужен видеоурок про rest & spread.

    • @VladilenMinin
      @VladilenMinin  4 года назад +2

      Как раз завтра будет)

  • @HovoK
    @HovoK 4 года назад +1

    Владилен вы растете на наших глазах))))) в предыдущих уроках у объекта Владилен поле age был ровен 25))))

    • @HovoK
      @HovoK 4 года назад

      кстати, привет из 2020

    • @user-qs8vf5dm3c
      @user-qs8vf5dm3c 3 года назад +1

      стареет потихоньку

  • @const1525
    @const1525 4 года назад +2

    Отличный урок, проходит со свистом ))

  • @andriyvorona7687
    @andriyvorona7687 4 года назад

    Давайте больше таких видео

  • @user-nk6qo9in4l
    @user-nk6qo9in4l Год назад

    Большое спасибо

  • @bolatzhanulys
    @bolatzhanulys 4 года назад

    ТОП урок!!!

  • @returnobject
    @returnobject 3 года назад

    зачетный ролик! работать с XHR классом как по мне проще для понимания чем с fetch(). классе все явно указывается а в fetch неявные промисы и прочие методы, мне нубу без доков не разобраться.

  • @leokorsunsky2395
    @leokorsunsky2395 3 года назад

    Лайк однозначно)

  • @MrGerka0291
    @MrGerka0291 7 месяцев назад

    Да!! просто нечеловеческое спасибо!!! а скажешь что за шаблон подсветки кода у тебя установлен?

  • @artemzhuravlenko9955
    @artemzhuravlenko9955 4 года назад

    Очень круто

  • @bloodraven9622
    @bloodraven9622 4 года назад

    спасибо, помог

  • @olenahrishyna3212
    @olenahrishyna3212 4 года назад

    Спасибо!

  • @QmanKUCHER
    @QmanKUCHER 3 года назад

    Владилен, спасибо за видео!!
    Но как всегда есть вопрос ведь странные ситуацию случаются, а ты немного говоришь о том как обрабатывать ошибки.
    Например, когда сервис упал он вместо ошибки начинает отдавать свою странницу 404, вместо json, но по каким-то истерическим причинам ее статус 200.
    Что делать в таких случаях?

  • @maksymvintskovskyi6475
    @maksymvintskovskyi6475 4 года назад +1

    Очень доступно. Но подскажите как использовать полученные данные, где они хранятся и т.п.

  • @svetlana9436
    @svetlana9436 4 года назад

    Спасибо ♥

  • @ilnurryazhapov9377
    @ilnurryazhapov9377 4 года назад

    Лайк не глядя!

    • @mihaylov13
      @mihaylov13 4 года назад

      Согласен, лайк

  • @brawlstarsgamer5496
    @brawlstarsgamer5496 Год назад

    Благодарю!!

  • @TheRealWorldArmenia
    @TheRealWorldArmenia Год назад +1

    Наш инстинкт . Когда хотим создавать объект, моментально в голову приходит "key" name и age .

  • @user-gs7hj1om5r
    @user-gs7hj1om5r 4 года назад +5

    на самом деле ты читаешь мои мысли.. хотел попросить урок по fetch и вот спс тебе

  • @nikolai4100
    @nikolai4100 3 года назад

    СПАСИБО!

  • @vyacheslav7838
    @vyacheslav7838 3 года назад

    Я реально испугался, когда ты не поставил точку с запятой, а потом вспомнил - это же js......)

  • @user-pe8el6tb7n
    @user-pe8el6tb7n 3 года назад

    СПАСИБО!!!

  • @user-bx7ly2th3b
    @user-bx7ly2th3b 4 года назад +3

    пару заметок, если кто-то захочет постестироват запросы через свой PHP-сервер (маловероянтно, конечно, что найдутся такие же недалекие люди, как я, но все же ...):
    я кучу времени потратил, чтобы угадать, как там должно быть сделано, чтобы все работало ....
    итак, в вашем PHP файле:
    # заголовки, чтобы сервер вообще смог хоть что-то ответить на запрос
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); # чтобы все работало после указания xhr.setRequestHeader('Content-Type', 'application/json');
    # распарсивалка данных, передаваемых не строкой, а в виде JSON.stringify({...object...})
    $postData = file_get_contents('php://input');
    $data = json_decode($postData, true);
    # ответ сервера
    $users = array(
    0 => array(
    "id" => 0,
    "name" => "Leanne Graham",
    "username" => "Bret",
    "email" => "Sincere@april.biz",
    "phone" => "1-770-736-8031",
    "website" => "hildegard.org",
    )
    );
    echo json_encode($users);

  • @todrgor
    @todrgor 2 года назад

    Блин спасибо большущее)))))

  • @GGSoft2009
    @GGSoft2009 4 года назад

    Спасибо!!!

  • @mk3mk3mk
    @mk3mk3mk 3 года назад +2

    С этим сайтом json placeholder понятно, а как быть с локальным своим сайтом? Там что должно быть, в самом простом варианте, файл index.php и в нем что должно быть? Чтобы мы могли получить данные.
    И еще, т. к. тут упоминается ajax, то что тут рассматривается, мы получаем данные с сервера, я например хочу сделать, чтобы эти полученные данные отображались на странице сайта, то они будут добавляться Без перезагрузки страницы?

  • @sergeyorlov6190
    @sergeyorlov6190 4 года назад

    Владилен, хотелось бы узнать полное взаимодействие базы, сервера, и приложения. Давай разберём остальные методы зачем они нужны и когда используются

    • @astrotrain
      @astrotrain 4 года назад

      Присоединяюсь, на практике только гет и пост юзал.

  • @tinaanit2965
    @tinaanit2965 3 года назад +6

    21:00 Fetch(Get)
    25:00 Fetch (POST)

    • @user-ck9ru7oc1h
      @user-ck9ru7oc1h 2 года назад

      Ты хороший человек. Спасибо.

  • @seriousman109
    @seriousman109 3 года назад +1

    Видео помогло, спасибо, + к карме.

  • @user-ri7zc8zs2b
    @user-ri7zc8zs2b Год назад

    Владилен, спасибо за урок!
    Не могли бы подсказать, где проблема в следующей ситуации: POST запрос при загрузке файлов отрабатывается правильно, но если в названии файла есть кириллица, то вместо нее приходит абракадабра. Попробовал и fetch, и XMLHttpRequest. FormData формируется правильно. С postman тестирование проходит без ошибок.
    с уважением,
    Юрий

  • @AntonioBenderas
    @AntonioBenderas Год назад +1

    Fetch уже был в Уроке8. Вообще плейлист как-то не структурирован, всё намешано в куче, вроде смотришь с 1 урока, а потом все темы в разнобой

  • @IhorVyshniakov
    @IhorVyshniakov 3 года назад

    Спасибо за полезный урок!
    Подскажите, пожалуйста, почему после команд до .onload не ставятся в конце ";"?
    Нужно ли ставить точку с запятой(если да, то всегда ли) или нет и почему?

    • @IhorVyshniakov
      @IhorVyshniakov 2 года назад

      @@user-lm8py5rb4m тоже вижу, но мне интересно почему

  • @user-ef2pn4zc8f
    @user-ef2pn4zc8f 2 года назад

    спасибо

  • @nosooqua
    @nosooqua 3 года назад

    А можно спросить? 😅
    А если в джаваскрипте "из коробки" есть XHR и Fetch, зачем нужны либы типа axios?

  • @tatianaleonova335
    @tatianaleonova335 3 года назад +1

    видео огонь!

  • @fein7068
    @fein7068 3 года назад +1

    Правильное решение это нужно создавать асинхронную функцию и ждать ответа до полного выполнения await и потом уже обрабатывать данные и тогда вам не нужно будет работать с проммисами.

  • @FilmsMediaTV
    @FilmsMediaTV Год назад

    Подскажи, пожалуйста, как так сделать, в названия методов внутри () скобок писались, как у тебя допустим
    sendRequest ( method: "POST") - как сделать так чтоб "method" показывался?
    это расширение какое-то ??

  • @bag8208
    @bag8208 2 года назад

    Подскажите плиз, а че в js, уже не нужны точка с запятой в конце команд?? спасибо!

  • @yerorey1771
    @yerorey1771 4 года назад

    Thank you! Cnocnbo!

    • @smolindesign
      @smolindesign 4 года назад

      Сnacubo! or Spasibo! or Спасибо! or Cnacu6(six)o!

  • @sabrinashamsiddinova7691
    @sabrinashamsiddinova7691 Год назад

    Thank u very much, really understandable. U just explained things in so clear way

  • @whicencer8819
    @whicencer8819 3 года назад +1

    Можно сделать это всё в пару строк кода. Используя Async, await. Как раз вы уже снимали видео про них.

    • @994gun3
      @994gun3 3 года назад

      Есть сссылка ?

  • @umpair
    @umpair 4 года назад

    Привет. А будет материал про ООП?

  • @-wildberries9607
    @-wildberries9607 3 года назад

    лучший

  • @user-ll8zx2je6i
    @user-ll8zx2je6i 4 года назад +1

    Спасибо за видео.
    Можешь сказать, есть ли случаи, когда fetch нежелательно использовать, а лучше придерживаться отправки/получения данных с помощью чистого (либо с исп-м Промисов) XMLHttpRequest (XHR) + Ajax?

    • @user-oy7rm2kz4z
      @user-oy7rm2kz4z 4 года назад

      Не то чтобы нежелательно, а не получится применить fetch в том случае, когда нужно отследить "процент" загрузки файла

    • @vitaliy794
      @vitaliy794 3 года назад

      @@user-oy7rm2kz4z то есть с помощью fetch не получится например делать полоски прогресса загрузки и тд?

    • @user-oy7rm2kz4z
      @user-oy7rm2kz4z 3 года назад

      @@vitaliy794 да. Для таких случаев используют api xmlhttprequest

    • @vitaliy794
      @vitaliy794 3 года назад

      @@user-oy7rm2kz4z А можете пожалуйста подсказать еще. Вот когда получил данные и что бы пройтись по массиву например map это делается внутри then типо такого
      sendRequest('GET', url)
      .then(data => {return data.map(item => {
      arrMass.innerHTML += `
      ${item.title}
      `
      })})
      или как то по другому можно данные выводить?