Мое веб-приложение выдает ошибку CORS после добавления HTTPS с помощью Let's Encrypt - PullRequest
0 голосов
/ 15 декабря 2018

Это мое приложение: https://cfslpro.com/student_portal/. Внешний интерфейс выполняется AngularJS, а внутренний - Node.JS.Размещено на сервере Apache.(Digital Ocean Linux 16.04).

Вы можете попробовать войти в систему;имя пользователя - chanu, а пароль - 123456. До добавления SSL с помощью Let's Encrypt это приложение работало хорошо.Теперь я получаю эту ошибку:

Блокирован перекрестный запрос: одна и та же политика происхождения запрещает чтение удаленного ресурса в https://165.227.121.28:7000/api/user_manage/login. (причина: запрос CORS не выполнен).

Но вы можете запустить этот URL без HTTPS в браузере, и он работает:

http://165.227.121.28:7000/api/user_manage/login

Теперь я покажу вам некоторые важныеразделы в моем коде сервера Node.Js:

Вот как я добавляю плагин CORS.

var cors = require('cors');
var app = express();
app.use(cors());

И вот как я создаю HTTP-сервер:

app.listen(config.port, function (err) {
    if (err) {
        console.log(err);
   } else {
        console.log("localhost:7000");
    }
});

Я создаю здесь нормальный HTTP-сервер.

И вот как явызов конечной точки входа в систему из моего внешнего интерфейса.

https://165.227.121.28:7000/api/user_manage/login

Если я использую это без HTTPS, я получаю сообщение об ошибке content blocked, потому что не могу вызвать HTTP-запрос из среды HTTPS.Вот где я получаю ошибку CORS.

Это мой /etc/apache2/sites-available/cfslpro.com.conf файл:

<VirtualHost *:80>

        <Directory /var/www/cfslpro.com/public_html>
                Options Indexes FollowSymLinks MultiViews

        </Directory>

        ServerAdmin webmaster@localhost
        ServerName cfslpro.com
        ServerAlias www.cfslpro.com
        DocumentRoot /var/www/cfslpro.com/public_html

        ProxyRequests on
        ProxyPass http://165.227.121.28:7000/api/user_manage/login https://localhost:7000/api/user_manage/login

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Я думаю, что моя конфигурация обратного прокси неверна.Я новичок в этой конфигурации прокси, и я следовал за некоторыми примерами онлайн.Я также следовал этому примеру: http://www.codingtricks.biz/run-nodejs-application-apache/

Это мой файл .htaccess:

<IfModule mod_rewrite.c>
  Header add Access-Control-Allow-Origin "*"
  Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
  Header add Access-Control-Allow-Headers: "Content-Type"
</IfModule>

Почему этот CORS дает мне эти ошибки и проблемы?Я тот, кто пытается исправить и учиться.

...