Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121

Не могу связать AJAX

07.04.2016, 18:25. Показов 2970. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, не как не могу связать AJAX для динамического обновления страницы. Подозреваю что все дело в том что в node js нужно объявить о загрузке juqery.js ну вообщем вот код:
index.hjs(hjs - шаблонизатор)
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE html>
<html>
    <head>
        <link href="style.css" rel="stylesheet" />
        <script type="text/javascript" src="../JS/jquery.js"></script>
        <script>
            function show()
            {
                $.ajax({
                    url: "main.js",
                    cache: false,
                    success: function(html){
                        $("#getContent").html(html);
                    }
                });
            }
 
            $(document).ready(function(){
                show();
                setInterval('show()',1000);
            });
        </script>
        <title>{{ title }}</title>
    </head>
    <body>
    <div id="getContent"></div>
        <p>Статус MQTT:</p>
        <p id="status">{{ Status }}</p>
    </body>
</html>
Структура проекта:
hjs
- index.hjs
- style.css
js
- jquery.js
public
- 1.jpg
- 2.jpg
- index.html
main.js
package.json

Выдает ошибки:
Кликните здесь для просмотра всего текста
GET http://192.168.1.12:8080/JS/jquery.js
Uncaught ReferenceError: $ is not defined
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.04.2016, 18:25
Ответы с готовыми решениями:

Django mongo ajax datatable как связать все
views.py def ajaxjson(request): testdata = ‘’ testdata = testdata.replace(', ]',']') return HttpResponse(testdata)так откправляю...

Не понимаю общего принципа. Как связать AJAX, Timer, UpdatePanel и контролы, в ней находящиеся
Суть такова. Я решил написать никому не нужный корпоративный чат, на примере которого хотел использовать наиболее оптимальные методы...

Не могу связать таблицы
Хочу связать таблицы. Цена_Авто с таблицей 1тАвтомобили. Чтобы столбцы Цена и Цена были связаны. Но выходят ошибки типа &quot;не обнаружен...

42
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.04.2016, 19:52
Цитата Сообщение от ratatyq Посмотреть сообщение
rc="../JS/jquery.js"></scrip
у меня такое чувство, что надо было как-то так
src="/js/jquery.js"

вообще покажите код сервера, вдруг вы там не просто node-static используете

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

Добавлено через 34 секунды

Не по теме:

я обычно вообще сервер и контент в разные проекты выношу, чтобы глаза не мозолили)

0
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121
07.04.2016, 20:01  [ТС]
BANO,
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
var mqtt    = require('C:/Program Files/nodejs/node_modules/mqtt');
var client  = mqtt.connect('mqtt://192.168.1.20:1883', { clientId: 'mqtt_userOpenHabDesigner' });
var http = require('http');
var path = require('path');
//var fs = require('fs');
var isGlobalLight = null; // глобальная переменная для изменения света
var static = require('C:/Program Files/nodejs/node_modules/node-static');
var express = require('C:/Program Files/nodejs/node_modules/express');
var app = express();
 
app.set('views', path.join(__dirname, 'hjs')); // подключение hjs фалой(index.hjs)
app.set('view engine', 'hjs'); // Подключаем шаблонизатор hjs
var titles = 'Succiful';
app.use(express.static(path.join(__dirname, 'hjs')));
 
app.get('/admin.html', function(req, res){
    if(isGlobalLight == true) {
        res.render('index', { title: titles, Status: 'ON'});
    } else if (isGlobalLight == false) {
        res.render('index', { title: 'TestS', Status: 'OFF'});
    }
 
});
 
app.listen(8080, '192.168.1.12');
 
/*server.on('request', function (req, res) {
    if(req.url == '/index.html') {
        var file = new fs.ReadStream('index.html');
        file.pipe(res);
    } else {
        res.statusCode = 404;
        res.end("Error!\nPage not found.");
    }
    res.on('close', function () {
        file.destroy();
    })
});*/
 
 
 
client.on('connect', function () {
    client.subscribe('/KuhLamp_102/gpio/output13');
});
 
client.on('message', function (topic, message) {
    switch(topic) {
        case '/KuhLamp_102/gpio/output13': return lightKitchen(message)
    }
});
 
function lightKitchen(message) {
    console.log('Status:', message);
    if (message == 1) {
        isGlobalLight = true;
    } else if (message == 0) {
        isGlobalLight = false;
    }
}
Добавлено через 4 минуты
Цитата Сообщение от BANO Посмотреть сообщение
src="/js/jquery.js"
Да нет веть документ находится в директории hjs следовательно ему надо переместится сначала в корневую папку и оттуда уже перемещатся в путь js
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.04.2016, 20:18
ratatyq, наверное браузер считает по-другому, потому что не может он из корневой директории пойти ещё вверх
а вообще проверьте всё-таки с нижним регистром использовать url
а то кто знает как вы там назвали папки
0
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121
07.04.2016, 20:25  [ТС]
BANO,
Цитата Сообщение от BANO Посмотреть сообщение
с нижним регистром использовать url
тоесть у меня тут нижний регистр
JavaScript
1
 url: "main.js",
Добавлено через 2 минуты
тоесть из корневой папки, у меня расположение index.hjs следующее hjs/index.hjs тобешь в этом файле нужно тогда прописать src='../js/jquery.js иначе он будет пытаться найти файл jquery.js в директории hjs/
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.04.2016, 20:44
ratatyq, да уж
смотрите
браузеру как-то пофиг как у вас там расположены файлы, он знает к ним путь, всё
он посылает запрос на файл с таким-то путём, если его нету, то прилетает вот такая ошибка
для браузера корневой папкой является хост, то есть вы не сможете "выйти" из этой папки никак

вы указали корневой папкой hjs, зря, потому что теперь браузеру доступно только 2 файла, а вверх его не пустит сервер
как я уже и сказал, тупо сбросьте всё в папку static
должно получится что-то вроде
static
-js
-- jquery.js
- 1.jpg
- 2.jpg
- index.html
- index.hjs
- style.css

Не по теме:

только возникает вопрос, как себя поведёт експресс, если увидит в одной папке два индекса



и поменяете путь к jquery на тот, который я говорил
и ещё
JavaScript
1
app.use(express.static(path.join(__dirname, 'static')));
Добавлено через 34 секунды

Не по теме:

Цитата Сообщение от ratatyq Посмотреть сообщение
var titles = 'Succiful';
:facepalm:
Successful

0
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121
07.04.2016, 23:16  [ТС]
Цитата Сообщение от BANO Посмотреть сообщение
Successful
я вписал там любую рандомную фразу, мне все равно пока что что там.. в любом случае.. сделал как ты сказал и щас видимо заработало но сыпает теперь ошибкой в консоли
Кликните здесь для просмотра всего текста

Не пойму что он пытается принять
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.04.2016, 23:24
у тебя main.js - сервер или клиент?
0
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121
07.04.2016, 23:25  [ТС]
сервер
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
07.04.2016, 23:39
а нафига вы его пытаетесь через http взять?
0
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121
07.04.2016, 23:41  [ТС]
BANO, а как ты определил что я через http и как изменить тогда?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
08.04.2016, 00:28
ratatyq, потому что GET [url]http://192[/url]...
я не понимаю зачем тебе код сервера на клиенте
0
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121
08.04.2016, 17:44  [ТС]
мне нужно что бы клиент обновлял каждую секунду допустим данные без перезагрузки страницы

Добавлено через 1 час 7 минут
BANO, а вот в hjs есть метод который просто меняет какую либо {{ per }} но при этом не надо что бы он загружал именно эту страницу

Добавлено через 3 минуты
Как бы я просто вот решил мб вот так попробовать
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        <script>
            function show()
            {
                $.ajax({
                    url: "date.hjs", // используем вот этот файл(в нем будут хранится все переменные которые надо менять)
                    cache: false,
                    success: function(html){
                        $("#status").html(html);
                    }
                });
            }
 
            $(document).ready(function(){
                show();
                setInterval('show()',1000);
            });
        </script>
а вот сам файл date.hjs
HTML5
1
<p>{{ Status }}</p>
Просто если я пропишу в серверном файле т.е в main.js вот это res.render('date', {Status: 'OFF'}); то он будет отображать именно эту страницу а мне надо что бы отображало index.hjs
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
08.04.2016, 20:28
ratatyq, к вопросу о том, как поведёт себя экспресс при двух индексах...

обычно делается так: берётся специальный адрес, например data
он обрабатывается специальным образом через миделвер
JavaScript
1
2
3
4
app.get("/data",function(req,res,next){
    // тут обрабатываете запрос и высылаете ответ через  res.send()
    // я обычно юзаю json, чтобы передавать какие-то данные
})
тк вот, просто делаете аякс на этот адрес и по полученым данным изменяете страницу
JavaScript
1
2
3
4
$.getJSON("/data",function(json){
 // тут уже обрабатываем json, в котором лежат ваши изменённые переменные
                    }
                });
0
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121
08.04.2016, 20:50  [ТС]
BANO, я с json плохо дружу разве там можно хранить данные? а можете написать какой нибудь пример записи и чтения данных?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
08.04.2016, 20:57
так
понятно
лучше вернёмся к вашей странице и лоаду

фух
и так, у вас есть страницы date.hjs, в ней меняются все переменные, что именно у вас там не получается?
переменные не идут?
тогда есть способ вот такой
JavaScript
1
2
3
app.get("/date.hjs",function (req,res,next){
    res.render("date",/*тут ваши данные в виде объекта*/)
})
date.hjs должен содержать только тот кусок страницы, в котором происходит отображение ваших статусов, тогда и делать будем немного по-другому загрузку этого куска

JavaScript
1
2
3
4
5
            $(function(){
                var show = $.fn.load.bind($("#status"), "date.hjs");
                show();
                setInterval(show, 1000);
            });
0
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121
09.04.2016, 00:09  [ТС]
BANO, хмм сделал как вы сказали не очень помогло, как бы он не может отдать данные что ли то есть он вырисовывает просто переменную {{ Status }} без значения хотя вот я так указал
JavaScript
1
2
3
app.get("/date.hjs",function (req,res,next){
    res.render("date",{ Status: 'ON'});
});
Добавлено через 1 минуту
Как бы скрипт работает, он обновляет этот div но постоянно просто дает {{ Status }}

Добавлено через 4 минуты
Зашел на date там все показывает т.е показывает ON или OFF

Добавлено через 13 секунд
точнее просто ON
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
09.04.2016, 00:11
значит через рендер не проходит или рендер какую-то ошибку видит
я честно мало пользовался hjs, я как-то больше по ejs и андерскору ориентируюсь
вы попробуйте просто зайти на date.hjs
по идее, если выдаст тот же {{ Status }}, то значит рендер не робит
если выдасть нормально, значит надо менять параметры load-а
0
3 / 3 / 1
Регистрация: 16.09.2015
Сообщений: 121
09.04.2016, 00:19  [ТС]
BANO, зашел просто на date выдает правильный результат не Status

Добавлено через 6 минут
А вот еще пишет ошибку но она всего 1 раз показывается им только при старте подозреваю что просто файл не подгружается до конца и из за этого ошибка
Кликните здесь для просмотра всего текста
jquery.js:9203 GET http://192.168.1.12:8080/date.hjs net::ERR_CONNECTION_REFUSED
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
09.04.2016, 00:21
Цитата Сообщение от ratatyq Посмотреть сообщение
подозреваю что просто файл не подгружается до конца
нет, вы посмотрите внимательно на логи сервера
он конекшон бросает только если у него внутри какая-то ошибка
например в макете используются данные, которых нету в объекте, передаваемом вторым параметром рендеру
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.04.2016, 00:21
Помогаю со студенческими работами здесь

Не могу связать QT и python
Здравствуйте, я начала делать программу для распознавания лиц и не могу понять, как связать интерфейс QT с кодом питона(то есть, связать...

Не могу связать две таблицы
есть запрос: SELECT Finance_Trainer.id_Trainer as idTrainer FROM Finance_Trainer LEFT JOIN Finance ON Finance.id =...

не могу связать RadioGroup с Label
Мне надо чтоб при выборе колонки RadioGroup на Label появилось надпись RadioGroupa. Написал процедуру procedure...

Не могу связать таблицы по данным
Здравствуйте. Имееются таблицы, по ним нужно сделать связь в MS Access. Никак не могу, то ли неверная информация в данной...

Не могу связать две таблицы
Ошибка при обработчике ADOTable2=true


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru