Это мое приложение: 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 дает мне эти ошибки и проблемы?Я тот, кто пытается исправить и учиться.