Ответы пользователя по тегу JavaScript
  • Как правильно принять данные в Node.js через Ajax?

    Fragster
    @Fragster
    помогло? отметь решением!
    Это все CORS. Оно требует нескольких заголовков со стороны сервера:

    app.use(function (req, res, next) {
    	res.header("Access-Control-Allow-Origin", req.headers.origin);
    	res.header('Access-Control-Allow-Credentials', 'true');
    	res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    	next();
    });


    и на стороне клиента:
    var ajaxSettings = {
    			method: form.method,
    			url: form.action,
    			data: JSON.stringify(data),
    			//					dataType: form.method === 'get' ? 'jsonp' : 'json',
    			dataType: 'json',
    			contentType: 'application/json',
    			processData: false,
    			xhrFields: {
    				withCredentials: true
    			}
    		};
    		var ajaxRequest = $.ajax(ajaxSettings);

    spoiler
    данный код является примерным


    Ну, или можно фронт также той же нодой раздавать, тогда кроссдоменного запроса не будет.
    Ответ написан
    1 комментарий
  • Как оповещать приложение о новой версии (и принудительно перезагружать его)?

    Fragster
    @Fragster
    помогло? отметь решением!
    добавьте отдельный запрос, возвращающий актуальную версию, пусть клиент сравнивает периодически свою и актуальную
    Ответ написан
    Комментировать
  • Как получить значение user?

    Fragster
    @Fragster
    помогло? отметь решением!
    а что вы используете в качестве ORM? в sequelize, например, есть docs.sequelizejs.com/en/v3/api/model/#findorcreate...
    Ответ написан
  • Как сделать предпросмотр изображений при загрузке с input type=[file]?

    Fragster
    @Fragster
    помогло? отметь решением!
    Комментировать
  • Ajax-запросы не работает почему?

    Fragster
    @Fragster
    помогло? отметь решением!
    код в принципе с синтаксическими ошибками. Например неправильно записаны многострочные строки, перепутаны открывающие и закрывающие скобки.
    В консоли пишет
    SyntaxError: unterminated string literal[Подробнее]
    Ответ написан
    Комментировать
  • Как изменить массив?

    Fragster
    @Fragster
    помогло? отметь решением!
    Ответ написан
    Комментировать
  • Как подсчитать кол-во определенных символов в строке, например ";"?

    Fragster
    @Fragster
    помогло? отметь решением!
    https://jsfiddle.net/8cvr0hjx/

    Поскольку сегодня пятница, то вспомнилась такая история:
    Сэр Эрнест Резерфорд, президент Королевской Академии и лауреат Нобелевской премии по физике, рассказывал следующую историю, служащую великолепным примером того, что не всегда просто дать единственно правильный ответ на вопрос.

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

    Экзаменационный вопрос гласил: «Объясните, каким образом можно измерить высоту здания с помощью барометра». Ответ студента был таким: «Нужно подняться с барометром на крышу здания, спустить барометр вниз на длинной веревке, а затем втянуть его обратно и измерить длину веревки, которая и покажет точную высоту здания».

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

    Я предложил студенту попытаться ответить еще раз. Дав ему шесть минут на подготовку, я предупредил его, что ответ должен демонстрировать знание физических законов. По истечении пяти минут он так и не написал ничего в экзаменационном листе. Я спросил его, сдается ли он, но он заявил, что у него есть несколько решений проблемы, и он просто выбирает лучшее.

    Заинтересовавшись, я попросил молодого человека приступить к ответу, не дожидаясь истечения отведенного срока. Новый ответ на вопрос гласил: «Поднимитесь с барометром на крышу и бросьте его вниз, замеряя время падения. Затем, используя формулу L = (a*t^2)/2, вычислите высоту здания».

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

    «Есть несколько способов измерить высоту здания с помощью барометра», начал студент. «Например, можно выйти на улицу в солнечный день и измерить высоту барометра и его тени, а также измерить длину тени здания. Затем, решив несложную пропорцию, определить высоту самого здания.»

    «Неплохо», сказал я. «Есть и другие способы?»

    «Да. Есть очень простой способ, который, уверен, вам понравится. Вы берете барометр в руки и поднимаетесь по лестнице, прикладывая барометр к стене и делая отметки. Сосчитав количество этих отметок и умножив его на размер барометра, вы получите высоту здания. Вполне очевидный метод.»

    «Если вы хотите более сложный способ», продолжал он, «то привяжите к барометру шнурок и, раскачивая его, как маятник, определите величину гравитации у основания здания и на его крыше. Из разницы между этими величинами, в принципе, можно вычислить высоту здания. В этом же случае, привязав к барометру шнурок, вы можете подняться в вашим маятником на крышу и, раскачивая его, вычислить высоту здания по периоду прецессии.»

    «Наконец», заключил он, «среди множества прочих способов решения проблемы лучшим, пожалуй, является такой: возьмите барометр с собой, найдите управляющего зданием и скажите ему: «Господин управляющий, у меня есть замечательный барометр. Он ваш, если вы скажете мне высоту этого здания».

    Тут я спросил студента — неужели он действительно не знал общепринятого решения этой задачи. Он признался, что знал, но сказал при этом, что сыт по горло школой и колледжем, где учителя навязывают ученикам свой способ мышления.

    Студентом этим был Нильс Бор (1885–1962), датский физик, лауреат Нобелевской премии 1922 г.

    Вот возможные решения этой задачи, предложенные им:

    1. Измерить время падения барометра с вершины башни. Высота башни однозначно рассчитывается через время и ускорение свободного падения. Данное решение является наиболее традиционным и потому наименее интересным.
    2. С помощью барометра, находящегося на одном уровне с основанием башни, пустить солнечный зайчик в глаз наблюдателя, находящегося на ее вершине. Высота башни рассчитывается исходя из угла возвышения солнца над горизонтом, угла наклона барометра и расстояния от барометра до башни.
    3. Измерить время всплывания барометра со дна заполненной водой башни. Скорость всплывания барометра измерить в ближайшем бассейне или ведре. В случае, если барометр тяжелее воды, привязать к нему воздушный шарик.
    4. Положить барометр на башню. Измерить величину деформации сжатия башни. Высота башни находится через закон Гука.
    5. Насыпать кучу барометров такой же высоты, что и башня. Высота башни рассчитывается через диаметр основания кучи и коэффициент осыпания барометров, который можно вычислить, например, с помощью меньшей кучи.
    6. Закрепить барометр на вершине башни. Послать кого-нибудь наверх снять показания с барометра. Высота башни рассчитывается исходя из скорости передвижения посланного человека и времени его отсутствия.
    7. Натереть барометром шерсть на вершине и у основания башни. Измерить силу взаимного отталкивания вершины и основания. Она будет обратно пропорциональна высоте башни.
    8. Вывести башню и барометр в открытый космос. Установить их неподвижно друг относительно друга на фиксированном расстоянии. Измерить время падения барометра на башню. Высота башни находится через массу барометра, время падения, диаметр и плотность башни.
    9. Положить башню на землю. Перекатывать барометр от вершины к основанию, считая число оборотов. (Способ, ставший популярным в России под кодовым названием "имени 38 попугаев").
    10. Закопать башню в землю. Вынуть башню. Полученную яму заполнить барометрами. Зная диаметр башни и количество барометров, приходящееся на единицу объема, рассчитать высоту башни.
    11. Измерить вес барометра на поверхности и на дне ямы, полученной в предыдущем опыте. Разность значений однозначно определит высоту башни.
    12. Наклонить башню. Привязать к барометру длинную веревку и спустить его до поверхности земли. Рассчитать высоту башни по расстоянию от места касания барометром земли до башни и углу между башней и веревкой.
    13. Поставить башню на барометр, измерить величину деформации барометра. Для расчета высоты башни необходимо также знать ее массу и диаметр.
    14. Взять один атом барометра. Положить его на вершину башни. Измерить вероятность нахождения электронов данного атома у подножия башни. Она однозначно определит высоту башни.
    15. Продать барометр на рынке. На вырученные деньги купить бутылку виски, с помощью которой узнать у архитектора высоту башни.
    16. Нагреть воздух в башне до определенной температуры, предварительно ее загерметизировав. Проделать в башне дырочку, около которой закрепить на пружине барометр. Построить график зависимости натяжения пружины от времени. Проинтегрировать график и, зная диаметр отверстия, найти количество воздуха, вышедшее из башни вследствие теплового расширения. Эта величина будет прямо пропорциональна объему башни. Зная объем и диаметр башни, элементарно находим ее высоту.
    17. Измерить с помощью барометра высоту половины башни. Высоту башни вычислить, умножив полученное значение на 2.
    18. Привязать к барометру веревку длиной с башню. Использовать полученную конструкцию вместо маятника. Период колебаний этого маятника однозначно определит высоту башни.
    19. Выкачать из башни воздух. Закачать его туда снова в строго фиксированном количестве. Измерить барометром давление (!) внутри башни. Оно будет обратно пропорционально объему башни. А по объему высоту мы уже находили.
    20. Соединить башню и барометр в электрическую цепь сначала последовательно, а потом параллельно. Зная напряжение, сопротивление барометра, удельное сопротивление башни и измерив в обоих случаях силу тока, рассчитать высоту башни.
    21. Положить башню на две опоры. Посередине подвесить барометр. Высота (или в данном случае длина) башни определяется по величине изгиба, возникшего под действием веса барометра.
    22. Уравновесить башню и барометр на рычаге. Зная плотность и диаметр башни, плечи рычага и массу барометра, рассчитать высоту башни.
    23. Измерить разность потенциальных энергий барометра на вершине и у основания башни. Она будет прямо пропорциональна высоте башни.
    24. Посадить внутри башни дерево. Вынуть из корпуса барометра ненужные детали и использовать полученный сосуд для полива дерева. Когда дерево дорастет до вершины башни, спилить его и сжечь. По количеству выделившейся энергии определить высоту башни.
    25. Поместить барометр в произвольной точке пространства. Измерить расстояние между барометром и вершиной и между барометром и основанием башни, а также угол между направлением от барометра на вершину и основание. Высоту башни рассчитать по теореме косинусов.
    Ответ написан
    Комментировать
  • Можно ли значение value у одного имени(name) передать другому в input?

    Fragster
    @Fragster
    помогло? отметь решением!
    да
    Ответ написан
    Комментировать
  • Как записать данные в модальное окно jquery?

    Fragster
    @Fragster
    помогло? отметь решением!
    У меня есть пример для связки bootstrab/jquery с vue.js, возможно поможет (и вопрос по этой связке): Как переделать показ интерактивного действия с коллбэком на промис?
    Ответ написан
  • Как спрятать DIV?

    Fragster
    @Fragster
    помогло? отметь решением!
    если прозрачность меняется анимацией, то https://developer.mozilla.org/ru/docs/Web/Events/t... , если просто устанавливается прозрачность, то _вместо_ нее делать hide
    Ответ написан
    Комментировать
  • Как добавить папку назначения при скачивании в JavaScript?

    Fragster
    @Fragster
    помогло? отметь решением!
    поставьте curl, wget или вообще целиком cygwin и наслаждайтесь. Также powershell это наверняка умеет. ну а в данном случае - в качестве аргумента saveToFile укажите полное имя файла.
    Ответ написан
    Комментировать
  • Как правильно подгрузить страницу в div при помощи AJAX?

    Fragster
    @Fragster
    помогло? отметь решением!
    тут, конечно, ванильный js, но, например, в Jquery есть .load(), который делает что нужно. Можно в исходниках глянуть, что не так. Ну, или есть https://learn.javascript.ru/fetch и response.text(), который можно вставить как innerHTML в нужный элемент DOM
    Ответ написан
  • Почему проблема?

    Fragster
    @Fragster
    помогло? отметь решением!
    <b>
                    <li v-for="site in cheapsites.thecheapestsites">{{site}}</li>
                  </b>
    Ответ написан
    1 комментарий
  • Как защитить ссылку на видео от распространения?

    Fragster
    @Fragster
    помогло? отметь решением!
    Для каждого покупателя генерить уникальную "подпись" изображения некоторым искажением цвета/области кадра. Тогда при нахождении того, кто слил, можно будет узнать, кто, даже если он запишет с экрана на телефон.
    Ответ написан
    Комментировать
  • Интерпретируемый язык ДЛЯ JS не подскажете?

    Fragster
    @Fragster
    помогло? отметь решением!
    codecombat.com в опенсурсе, вероятно, там и интерпретаторы есть... https://github.com/codecombat/codecombat
    Ответ написан
    Комментировать
  • Как после нажатия на сабмит в форме и обработки данных на сервере, перенаправить на другую страницу и сохранить эти логин и пароль в куке?

    Fragster
    @Fragster
    помогло? отметь решением!
    на клиенте что-то типа
    jQuery.getJSON('/ajaxlogin/', {login:login, pass:pass}, function(result){
    if (result.redirect) {
    window.location = result.redirect
    } else if (result.error) {
    alert(result.error);
    }
    });


    на сервере
    ....
    if (ok) {
     return res.json({redirect: 'authorizationSuccess.html'})
    } else {
     return res.json({error: 'authorization fail!'})
    }
    ....


    + надо еще с CORS разобраться, если разные origin
    Ответ написан
    Комментировать
  • Почему не выводится содержимое массива в HTML?

    Fragster
    @Fragster
    помогло? отметь решением!
    Ну, вы переменную html оно выводится... а вот дальше это содержимое должно куда-то в документ попасть, например в document.getElementById('target').innerHTML = html;
    Естественно, для этого в самом документе должен быть элемент с id target.
    Ну а вообще если это происходит не ради обучения - то я бы смотрел в сторону json2html.com на начальном этапе и vue/react в продолжении.
    А если ради обучения - то рассматривал бы не работу со строками, а манипуляцию элементами DOM
    Ответ написан
  • Как оптимизировать такой код?

    Fragster
    @Fragster
    помогло? отметь решением!
    пора переходить на что-то "реактивное", типа vue.js
    Ответ написан
    Комментировать
  • Как это можно промисифицировать?

    Fragster
    @Fragster
    помогло? отметь решением!
    что-то типа того:
    cognitoUser.prototype.authenticateUserPromise = function (authenticationDetails) {
    return new Promise((resolve, reject) => {
    		this.authenticateUser(authenticationDetails, (result)=>{return resolve(result)}, (error) =>{return reject(error)});
    });
    Ответ написан
    Комментировать
  • Можно ли получить доступ к переменной внутри функции, или как иначе решить проблему?

    Fragster
    @Fragster
    помогло? отметь решением!
    можно пихать ид таймеров в глобальный хэшмассив с ключем по чату. ну, или какие-нибудь другие "сессии" прикрутить, если библиотека поддерживает. telegraf, вроде, поддерживает
    Ответ написан
    Комментировать