Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
3 / 3 / 0
Регистрация: 14.01.2021
Сообщений: 42

Корректная передача данных на сервер

14.01.2021, 16:01. Показов 1422. Ответов 3

Студворк — интернет-сервис помощи студентам
Алоха, всем кому не все равно!
Мучаюсь в рамках данной темы, надеюсь найду на форуме поддержку.

Раньше программировал игры на Actionscrip и в данный момент переписываю клиентскую часть на Javascript. Задачу, которую не смог решить заключается в следующем: Пользователь на клиенте отправляет секретный код запрос на сервер и сервер возвращает ответ. Если запрос был корректно отправлен мы получаем либо '0', либо '1'. Если запрос некорректен сервер возвращает 'Здесь ничего нету'

Я голову сломал, но не смог корректно переписать код и все время получаю 'Здесь ничего нету'. Помогите пожалуйста допилить код на JS.

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private function sendBtnClick(e:MouseEvent):void {          
            request = new URLRequest('site/validate_key.php');
            request.method = URLRequestMethod.POST;
            var vars:URLVariables = new URLVariables();
            vars['key'] = '38257a3108a93fb108fe4dca5361eda3';
            request.data = vars;
            loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);
            loader.addEventListener(Event.COMPLETE, onComplete);
            loader.load(request);
        }
private function onComplete(event:Event):void {
           if(loader.data == 1) {
                key_txt.text = 'Cпасибо за регистрацию игры';
            } else {
                key_txt.text = 'Ключ неверный, введите новый';
            }
        }
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
    if($_POST['key']) {
        
        $result = 0;
 
        include('db.php');
        
        $stmt = $db->prepare('SELECT * FROM activation WHERE activation = :activation AND status = 1 LIMIT 1');
        $stmt->execute(['activation' => $_POST['key']]);
        if($row = $stmt->fetch(PDO::FETCH_LAZY)) {
            $stmt = $db->prepare('UPDATE activation SET status = 0, ip = :ip, date_activation = NOW() WHERE activation = :activation AND status = 1 LIMIT 1');
            if($stmt->execute(['activation' => $_POST['key'], 'ip' => $_SERVER['REMOTE_ADDR']])) {
                $result = 1;
            }
        }
        
        echo $result;
        
    } else {
        echo 'Здесь ничего нету';
    }
 
?>
А вот мой вымученный код Javascript, который нуждается в вашей поддержке
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
function getXmlHttp() {
    let xmlhttp;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
        }
    }
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        xmlhttp = new XMLHttpRequest();
    }
return xmlhttp;
}
 
let vars = {};
vars['key'] = userSerial.value;
let xmlhttp = getXmlHttp(); // Создаём объект XMLHTTP
xmlhttp.open('POST', 'http://xn--d1ahbiil.xn--p1ai/_key/validate_key.php', true); // Открываем асинхронное соединение
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); // Отправляем кодировку
xmlhttp.send(encodeURIComponent(vars)); // Отправляем POST-запрос
xmlhttp.onreadystatechange = function () { // Ждём ответа от сервера
if (xmlhttp.readyState == 4) { // Ответ пришёл   
    if (xmlhttp.status == 200) { // Сервер вернул код 200 (что хорошо)
        console.log(xmlhttp.responseText);
        }
    }
};
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2021, 16:01
Ответы с готовыми решениями:

Способы шифрование данных. Передача данных на сервер в зашифрованном виде
Всем привет Хотелось бы услышать мнение опытных программистов о методах шифрования или о способах передачи данных от программы до сайта в...

Передача данных на сервер
вот так пытаюсь передать данные из js переменной на сервер но всё просто вылетает var name=5; ...

передача данных на сервер
С этими языками ещё не знаком... Мне нужен какой-нибудь способ передачи данных на веб сервер с помощью PHP, HTML или JavaScript. Тоесть...

3
Эксперт JS
6497 / 3908 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
14.01.2021, 17:18
Здравствуйте!
У вас приветствие, как начало одной из песен "Гражданской обороны".
PHP/HTML
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
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
</head>
 
<body>
    <script>
        let url = "http://xn--d1ahbiil.xn--p1ai/_key/validate_key.php";
        let xhr = new XMLHttpRequest();
 
        xhr.open("POST", url, true);
 
        let params = new URLSearchParams({ key: "38257a3108a93fb108fe4dca5361eda3" });
        xhr.responseType = "text";
        xhr.send(params);
 
        xhr.onload = function () {
            if (xhr.status !== 200) {
                console.log(`Error ${xhr.status}: ${xhr.statusText}`);
            } else {
                console.log(xhr.response);
            }
        };
 
        xhr.onerror = function () {
            console.log("Error");
        };
    </script>
</body>
</html>
Справка по отправке POST-запросов: XMLHttpRequest
1
3 / 3 / 0
Регистрация: 14.01.2021
Сообщений: 42
14.01.2021, 19:12  [ТС]
amr-now, Егор Летов - наше народное достояние! А вом огромное спасибо!
1
3 / 3 / 0
Регистрация: 14.01.2021
Сообщений: 42
04.02.2021, 18:35  [ТС]
amr-now, привет. Переписываю код под NODE JS и возникли сложности, может ты знаешь как решить?

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
const robot = "http://xn--d1ahbiil.xn--p1ai/_key/validate_key.php";
let XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
let xhr = new XMLHttpRequest();
 
let userKey = '38257a3108a93fb108fe4dca5361eda3';
 
xhr.open("POST", robot, true);
let params = new URLSearchParams({ key: userKey });
xhr.responseType = "text";
xhr.send(params);
xhr.onload = function () {
    if (xhr.status !== 200) {
        alert(`Error ${xhr.status}: ${xhr.statusText}`);
    } else {
        if (xhr.response === '0') {
            console.log('-0-');
        } else {
            console.log('-1-');
        }
    }
};
xhr.onerror = function () {
    alert(reportInternet);
};
Ошибка:
Code
1
2
3
4
5
6
7
8
9
10
11
12
Uncaught Exception:
TypeError [ERR_INVALID_ARG_TYPE]: The "string" argument must be of type string or an instance of Buffer or ArrayBuffer. Received an instance of URLSearchParams
    at Function.byteLength (buffer.js:726:11)
    at exports.XMLHttpRequest.send (/Users/admin/Work/idomic2.0/Wedding-Quiz/node_modules/xmlhttprequest/lib/XMLHttpRequest.js:363:80)
    at Object.<anonymous> (/Users/admin/Work/idomic2.0/Wedding-Quiz/main.js:162:5)
    at Module._compile (internal/modules/cjs/loader.js:1152:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1173:10)
    at Module.load (internal/modules/cjs/loader.js:992:32)
    at Module._load (internal/modules/cjs/loader.js:885:14)
    at Function.f._load (electron/js2c/asar_bundle.js:5:12738)
    at loadApplicationPackage (/Users/admin/Work/idomic2.0/Wedding-Quiz/node_modules/electron/dist/Electron.app/Contents/Resources/default_app.asar/main.js:110:16)
    at Object.<anonymous> (/Users/admin/Work/idomic2.0/Wedding-Quiz/node_modules/electron/dist/Electron.app/Contents/Resources/default_app.asar/main.js:222:9)
Добавлено через 2 часа 5 минут
Похоже, нужно приводить к строковому значению и вроде работает
JavaScript
1
xhr.send(params.toString());
Добавлено через 14 минут
тлен (( console.log('xhr.response = ' + xhr.response); // возвращает undefined, а должен вернуть 0 или 1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.02.2021, 18:35
Помогаю со студенческими работами здесь

Передача данных на сервер
Ява скриптом я передаю на сервер json строку, вероятно содержащую Шарп(#). $.ajax( //... data: &quot;query=&quot; +...

Передача данных на сервер
Добрый день! Не могу реализовать передачу данных из мобильного приложения на веб-сервер. Отправляю данные List&lt;string&gt; json...

не корректная передача option value в POST HTML+JS
Всем привет, подскажите пож-та, не корректно передаются данные из option value (сейчас передаются данные которые стоят по умолчанию в...

Корректная передача строкового параметра в функцию
Доброго, с места в карьер, объясните мне, недалекому, пожалуйста, почему вот это работает: &lt;!DOCTYPE html&gt; &lt;html&gt; ...

Передача данных клиент-сервер
Всем доброго. Только начал изучать сокеты и передачу через tcp/udp. Есть клиент и сервер, коннект через udp: private void...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru