Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как решить проблему CORS при использовании MARS REST API в Delphi из JavaScript

Delphi , Синтаксис , API реализация

CORS (Cross-Origin Resource Sharing) — это механизм безопасности, который позволяет или запрещает веб-клиентам (обычно браузерам) делать запросы к ресурсам на других доменах. Проблема CORS может возникнуть, когда вы пытаетесь использовать API, созданное с помощью библиотеки MARS-Curiosity для Delphi, в клиентском JavaScript-коде, который выполняется в браузере.

Описание проблемы

При использовании MARS-Curiosity Delphi REST Library для создания простого API с POST-эндпоинтом, вы можете столкнуться с ситуацией, когда ваш API работает корректно в Postman, но при попытке обращения к нему из JavaScript-кода возникает ошибка CORS. Ошибка указывает на то, что запрашиваемый ресурс не содержит заголовка Access-Control-Allow-Origin, который необходим для разрешения кросс-доменных запросов.

Пример кода JavaScript, вызывающего ошибку CORS

const requestOptions = {method: 'POST'};
fetch("http://localhost:8080/rest/person/profile/get", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

Решение проблемы

Решение заключается в активации CORS для вашего MARS API. В корневой директории проекта, где находится исполняемый файл, должен быть расположен файл конфигурации .ini с таким же именем, как и у исполняемого файла. В этом файле необходимо убедиться, что следующие параметры установлены для активации CORS:

CORS.Enabled=True
CORS.Origin=*
CORS.Methods=HEAD,GET,PUT,POST,DELETE,OPTIONS
CORS.Headers=X-Requested-With,Content-Type,Authorization

Если вы используете шаблон, который идет в комплекте с библиотекой MARS, то эти строки уже должны быть в вашем .ini файле, но закомментированы. Вам нужно будет просто убрать символ комментария (точку и разделитель ;) для активации настроек CORS.

Пример активации CORS в файле конфигурации .ini

;CORS.Enabled=True - Уберите точку и разделитель для активации
;CORS.Origin=* - Уберите точку и разделитель для активации
;CORS.Methods=HEAD,GET,PUT,POST,DELETE,OPTIONS - Уберите точку и разделитель для активации
;CORS.Headers=X-Requested-With,Content-Type,Authorization - Уберите точку и разделитель для активации

После того, как вы внесли необходимые изменения в файл конфигурации, перезапустите ваше приложение, и проблема с CORS должна быть решена.

Важные замечания

  • Установка CORS.Origin=* разрешает все домены. Это может быть рискованно для продакшена, так как увеличивает вероятность неавторизованного доступа. В продакшене следует указать конкретные домены, которым разрешено обращаться к вашему API.
  • Убедитесь, что вы перезапустили ваше приложение после внесения изменений в файл конфигурации.

Следуя этим инструкциям, вы сможете успешно разрешить проблему CORS и использовать MARS REST API в Delphi из JavaScript-кода.

Создано по материалам из источника по ссылке.

Проблема заключается в настройке CORS для MARS REST API в Delphi, чтобы разрешить доступ к API из JavaScript-кода, выполненного в браузере.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: API реализация ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 11:56:08/0.0056869983673096/1