03
Май
2020

Как отправить запрос с js-сайта на VPS сервер под ubuntu? Вопрос с вознаграждением

ЗЫ тому, кто решит данный вопрос переведу 500р на карту.

Суть в том что 443 порт работает по дефолту. И я не могу создать createServer(...).listen(443) а затем запустить программу, так как этот порт или как там это называется уже работает по умолчанию... При создании кастомного порта например 5555. программа на сервере запускается и слушает. Из клиентской части я отправляю ajax запрос, но в консоле получаю следующую ошибку:

// ------------------------------- ERROR:

Доступ к XMLHttpRequest по адресу https://example.com:5555/nodejs/listenMQL.js из источника «https://example.com» был заблокирован политикой CORS: Ответ на запрос перед полетом не проходит проверку контроля доступа : На запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

// -------------------------- Клиентская часть:

$.ajax({
                type: "POST",
                url: "https://example.com:5555/nodejs/listenMQL.js",
                headers: {
                    "Accept": "text/html",
                    "Access-Control-Allow-Origin": "*"
                },
                data: JSON.stringify(jsonObj),
                cache: false,
                success: function (data) {...}});

// -------------------------- Серверная часть:

let fs = require("fs");
let express = require("/root/node_modules/express/lib/express");
let app = express();
let https = require("https");


let options = { // Здесь я считываю в свойства объекта содержимое файлов с сертификатом и ключем
  key: fs.readFileSync("/var/www/www-root/data/www/example.com/nodejs/key.pem"),
  cert: fs.readFileSync("/var/www/www-root/data/www/example.com/nodejs/cert.pem")
};
// Хотелось бы добавить, что файлы key.pem и cert.pem я создавал на компьютере, вставлял содержимое 
// сертификата в файл txt а затем менял формат на pem, после чего допавил готовые файлы на сервер 
// через менеджер. При этом файлы содержат в том числе начинающиеся и завершающиеся дефисы например(- 
// ----BEGIN RSA PRIVATE KEY----- и -----END RSA PRIVATE KEY----- и ... также добавлены в файл). По 
// мимо этого в менеджере на моем домене в параметрах есть SSL и все уже само было установленно 
// собственно без моего вмешательства...


https.createServer(options, (req, res)=>{
    req.on("data", data =>{...});
    res.end("Ok");
}).listen(5555);

В общем я многое уде перепробовал но ничего не получается... При чем с клиентской программы на с++ передаются и принимаются таким образом данные по http протоколу... А сайт почему то не хочет... На php тоже без проблем все доставляет и принимает, а с nodejs какие то карусели...

Источник: https://ru.stackoverflow.com/questions/1119721/%D0%9A%D0%B0%D0%BA-%D0%BE%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%B7%D0%B0%D0%BF%D1%80%D0%BE%D1%81-%D1%81-js-%D1%81%D0%B0%D0%B9%D1%82%D0%B0-%D0%BD%D0%B0-vps-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-%D0%BF%D0%BE%D0%B4-ubuntu-%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81-%D1%81-%D0%B2%D0%BE%D0%B7%D0%BD%D0%B0%D0%B3%D1%80%D0%B0%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8

Тебе может это понравится...

Добавить комментарий