• Как отправить body с помощью get запроса?

    YuriyVorobyov1333
    @YuriyVorobyov1333
    Software Developer
    Так делать можно, но не нужно, можете привести это:
    A payload within a GET request message has no defined semantics; sending a payload body on a GET request might cause some existing implementations to reject the request.

    Т.е. gолезная нагрузка в сообщении запроса GET не имеет определенной семантики; отправка тела полезной нагрузки в запросе GET может привести к тому, что некоторые существующие реализации отклонят запрос. Если обратиться к более старым спецификациям, то там вообще написано, что надо игнорировать тело при GET. Да и вообще посмотрите на API крупных сервисов, хоть где-то при работе с ними вы в гете отправляете body?), а еще можете привести в пример Swagger и поведение GET там (Swagger ни за что в жизни не отправит body в GET). Но на любой пример есть и антипример, например, Elasticsearch принимает body в GET. Также если полезть в спецификацию, то согласно RFC 2119 разработчики могут слать body, если на то есть веские причины, наверное, к этим причинам можно отнести большое число параметров или если это body не изменит какие-то данные.

    P.s. показывать на Postman не круто, т.к. Postman , как минимум, сам добавляет заголовки и может отправлять form-data с выбранным пользователем заголовком application/json
    Ответ написан
    2 комментария
  • Почему при клике обработчик события срабатывает два раза?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Потому что клик на лейбл вызывает клик на инпуте (так лейблы устроены, могут вызывать клик на других элементах), а так как инпут находится внутри лейбла, событие при всплытии заставляет обработчик клика сработать ещё раз.

    Какие есть варианты исправить ситуацию:
    1. Вешайте обработчик клика на инпут вместо лейбла
    2. Проверяйте целевой элемент, если не инпут - ничего делать не надо
    3. Обрабатывайте вместо click событие change
    Ответ написан
    Комментировать
  • Git, как обновить проект ?

    ghaiklor
    @ghaiklor
    NodeJS TechLead
    Если вы хотите обновить у себя
    git pull
    Если вы хотите залить изменения на удаленный git-репозиторий
    git push
    Ответ написан
    Комментировать
  • Почему данном случае теряется контекст this?

    Aetae
    @Aetae Куратор тега JavaScript
    Тлен
    Простой ответ:
    Берём метод:
    метод = function(){
      console.log(this)
    };
    и(не важно как) пихаем его в какие-то объекты.
    Получаем:
    хрень.метод() // this - хрень
    хрень.кишки.метод() // this - хрень.кишки
    метод() // this - window
    
    хрень.метод.call(хрень.кишки) // this - хрень.кишки
    метод.call(хрень.кишки) // this - хрень.кишки
    метод.call(null) // this - null
    
    элемент.addEventListener('оппа', хрень.метод) //  this -элемент
    элемент.addEventListener('оппа', метод) //  this -элемент
    элемент.addEventListener('оппа', хрень.кишки.продукт.метод) //  this -элемент

    По сути this для фукции - это то, что идёт перед точкой, кроме тех случаев когда он переопределён явно. Всё, никакой эзотерики.)

    fn.call(!this ? this : obj) - это чушь скорее всего. Если this - falsy, то ставим его как this при вызове функции fn, иначе ставим obj. Falsy this может быть только при явном указании(или в strict режиме, при вызове функции напрямую("без точки перед ней")), и скорее всего передача пустого this в таком случае просто сломает выполнение fn.

    Ну ещё следует упомянуть стрелочную фукнцию:
    метод = () => {
      console.log(this)
    };
    это можно считать за явное указание this, потому что this тут всегда привязан тот, что был при создании стрелочной функции, независимо от того как и откуда её вызывают.
    Ответ написан
    3 комментария
  • При каждом запуске хрома автоматически устанавливается расширение "Часы и секундомер". Откуда лезет зараза?

    sudo_sandzo
    @sudo_sandzo
    Зайди в реестр. Найди папку HKEY_LOCAL_MACHINE, в ней открываешь Software, потом Policies и, наконец, Google и Chrome. В данной папке найди папку ExtensionInstallWhitelist и удали ее содержимое. Нажми WIN+R и нажмите Enter и в открывшееся окно вставьте следующее:

    %userprofile%\AppData\Local\Google\Chrome\User Data\Default

    Нажми Enter В открывшейся папке удалите следующие папки Extension State, Extension Rules и Extensio.Жмем WIN+R нажимаем Enter, в открывшееся окно вставьте следующее: msconfig, нажми ENTER, в открывшемся окне переходим на вкладку автозагрузка и снимаем флаги с неизвестных тебе программ. Ну как-то так, удачи.
    Ответ написан
    2 комментария
  • Как изменить элемент при наведении, не трогая остальные?

    @VegasChickiChicki
    Возможна такая логика:
    1) Обрабатываем движение курсора по карте
    2) Если курсор попал на карту :
    2.1) Проходимся циклом по все path - задаем им прозрачность, 0.7 например
    2.2) Тому который под курсорм (event.target) - не задаем, а точнее задаем прозрачность 1

    //при наведении указателя
    document.querySelector('.map').addEventListener('mousemove', (event) => {
        let hoverEffect = document.querySelectorAll('.hover-effect');
        for (let i = 0; i < hoverEffect.length; i++) {
            hoverEffect[i].style.opacity = '0.5';
        }
      event.target.style.opacity = '1';
    });
    
    //при убирании указателя
    document.querySelector('.map').addEventListener('mouseout', () => {
        let hoverEffect = document.querySelectorAll('.hover-effect');
        for (let i = 0; i < hoverEffect.length; i++) {
            hoverEffect[i].style.opacity = '1';
        }
    });


    Совсем чуть чуть поменял ваш код - все работает)
    Ответ написан
    Комментировать
  • Как изменить элемент при наведении, не трогая остальные?

    0xD34F
    @0xD34F Куратор тега JavaScript
    .hover {
      opacity: 0.5;
    }

    const map = document.querySelector('.map svg');
    map.addEventListener('mouseover', onHover);
    map.addEventListener('mouseout', onHover);
    
    function onHover({ target: t }) {
      this.querySelectorAll('.hover-effect').forEach(n => {
        n.classList.toggle('hover', n !== t && this !== t);
      });
    }
    Ответ написан
    Комментировать
  • Как отработать клик вне блока?

    Paramid
    @Paramid
    jQuery(function($){
    	$(document).mouseup(function (e){ // событие клика по веб-документу
    		var div = $("#popup"); // тут указываем ID элемента
    		if (!div.is(e.target) // если клик был не по нашему блоку
    		    && div.has(e.target).length === 0) { // и не по его дочерним элементам
    			div.hide(); // скрываем его
    		}
    	});
    });
    Ответ написан
    6 комментариев
  • Актуальна ли в настоящее времени серия книг You Don’t Know JS?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ написан
    Комментировать
  • Для чего нужно наследование, если можно обойтись без него?

    SkiperX
    @SkiperX Куратор тега CSS
    наследование было в smacss
    в беме от него ушли
    почитайте про методологии
    https://html5.by/blog/bem-amcss-oocss-atomiccss-op...
    https://ru.bem.info/
    Ответ написан
    1 комментарий
  • Фоновая картинка съезжает, что делать?

    IlyaDeveloper
    @IlyaDeveloper
    Top Rated | Expert Web Developer
    Вообще вам просто надо присмотреться у вас на тег header стоит position: absolute; , все должно работать но не работает потому что у вас просто нету тега header, как говорится учится учится и еще раз учится и не задавать *глупых вопросов_)) из за невнимательности!

    Еще на заминку она и будет уходить, изза того что блок .header первый а блок .intro стоит следующим, тут тебе или нужно делать чтобы два блока были в одной секции, или добавлять отрицательный отступ по высоте нижнему блоку, ну или твой вариант когда блок позиционируется абсолютным позиционированием, но позиционировать прям в боди абсолютом так сказать не очень идея, в любом случае всем другим блокам что ниже тогда надо внутри паддинг от верху задавать по такой высоте как хеадер!

    Вот твой вариант профиксил смотреть
    Глянь у меня тут вариант с отрицательным офсетом нижних блоков смотреть
    Ответ написан
    Комментировать