Я создаю HotSpot, и каждый раз, когда я пытаюсь войти в систему, он постоянно говорит:
Cross-Origin-Request Blocked. Такая же политика происхождения запрещает чтение удаленного ресурса на http://10.5.50.1/Login. (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin».)
Прежде всего, я должен признать, что понимаю только принцип CORS. Практическую сторону я понимаю лишь смутно, и документация, которую я прочитал на Mozilla, не сильно помогла. Я также прочитал много постов здесь о переполнении стека, но я не нашел нужного мне ответчика.
Я хотел бы знать, где нужно разместить заголовки CORS (HTML, PHP и др c.). Кроме того, как и где должен быть указан заголовок PHP CORS. Также, где и когда должен быть размещен заголовок HTML CORS. И, наконец, куда мне поместить заголовок Apache CORS.
Я пробовал различные варианты, но просто не могу заставить его работать.
Маршрутизатор / точка доступа размещает страницу входа после того, как пользователь вводит информацию, создаются два ajax сообщения. 1-й вход в систему пользователя (он получает доступ rnet), 2-й отправляет некоторую информацию на сервер apache, который находится за пределами сети, где php сохраняет некоторую информацию в базу данных.
Как я упоминал ранее, у меня есть только смутные представления о том, как CORS должен работать, поэтому любые указатели, исправления и т. Д. c. очень приветствуются.
Также, если вам нужна дополнительная информация, просто скажите. Я не знаю, что еще предоставить, и я не хотел кластеризовать сообщение с бессмысленной информацией.
Вот код, который есть на данный момент.
PHP
<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/x-www-form-urlencoded, multipart/form-data');
header('Access-Control-Allow-Methods: POST');
$host = "localhost";
$userName = "root";
$password = "";
$dbName = "baza";
// Create database connection
$DB = new mysqli ($host, $userName, $password, $dbName);
// Check connection
if ($DB->connect_error) {
die("Connection failed: " . $DB->connect_error);
}
?>
HTML
$(if http-header == "Access-Control-Allow-Origin")http://realhotspot.com$(endif)
$(if http-header == "Access-Control-Allow-Origin")http://10.5.50.1/login$(endif)
$(if http-header == "Access-Control-Allow-Origin")http://10.5.50.1$(endif)
$(if http-header == "Access-Control-Allow-Origin")*$(endif)
это задано c до Mikrotik , и, насколько я понимаю, должно быть установлено таким образом (все еще не работает хотя).
Apache
<Directory>
AllowOverride none
Require all denied
#I added this
Header set Access-Control-Allow-Origin "*"
</Directory>
#And I added this right after the </Directory>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="Authorization, Origin, X-Requested-With, Content-Type, Accept"/>
</customHeaders>
</httpProtocol>
После того, как я добавил код Apache, он перестал работать, я получил эту ошибку:
Ошибка: Apache неожиданно завершил работу. Это может быть связано с заблокированным портом, отсутствующими зависимостями, неправильными привилегиями, cra sh или отключением другим способом. Нажмите кнопку «Журналы», чтобы просмотреть журналы ошибок и проверить Windows Event Viewer для получения дополнительных подсказок. Если вам нужна дополнительная помощь, скопируйте и опубликуйте все это окно журнала на форумах.
И, естественно, ничего нет в логах, которые бы указывали в чем проблема.
Спасибо за помощь.