Я знаю, что есть много вопросов, касающихся CORS, но они, похоже, не отвечают на мой вопрос.
Итак, у меня есть клиентское приложение, написанное на Angular, которое будет использоваться для создания мобильного приложения (с Apache Cordova). HTML файлы и файлы JavaScript будут загружены с мобильного устройства. Когда я имитирую это и отправляю запросы на сервер API REST, я сначала получаю заголовок "Нет" Access-Control-Allow-Origin "на запрошенном ресурсе. Следовательно, источник" http://localhost:82
"не имеет доступа ". Поэтому я добавил заголовок ("Access-Control-Allow-Origin: *"); в моем php REST API Server. Я не могу указать конкретный домен, так как запросы будут поступать с мобильных устройств.
Теперь я понял, что "подстановочный знак" * "нельзя использовать в заголовке" Access-Control-Allow-Origin ", когда флаг учетных данных имеет значение true".
Я наконец-то нашел решение, но я не уверен, что это безопасно.
В моем php REST API Server я добавил это:
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: " . $_SERVER['HTTP_ORIGIN']);
header("Access-Control-Allow-Headers: *, X-Requested-With, Content-Type");
header("Access-Control-Allow-Methods: GET, POST, DELETE, PUT");
}
Посоветуйте пожалуйста этот способ работы. Если это небезопасно или не очень хорошо, подскажите, пожалуйста, как решить эту проблему?
Большое спасибо!