Я борюсь с реализацией CORS в моем проекте клиент-сервер. CORS означает, что вызовы из другого источника (например, другого домена) разрешены только в том случае, если заголовок содержит значение CORS.Нужен ли RESTful API для реализации CORS в любое время?
Так, например, если я размещаю сайт на www.domain.com и вызываю RESTful API в том же домене, все в порядке.
Но если я разрабатываю API для мобильного приложения, например, мобильный телефон не имеет того же домена API. Как это могло бы работать вместе? Нужно ли мне каждый раз выполнять CORS в моем сервисе?
Вопрос возникает, так как я разрабатываю приложение Angular 2, которое работает в dev на localhost: 4200, а мой API работает на localhost: 8080 (build with Spring Boot). Таким образом, клиент выдает исключение, потому что это не то же самое происхождение (другой порт).
Цель состоит в том, чтобы разместить мой API на корневом сервере где-то в Интернете, а клиент на другом провайдере веб-пространства (потому что это всего лишь одно приложение страницы). Api работает с http://1.2.3.4:8080/api/v1, а клиент с http://www.example.com:80/myPage
Итак, нужно ли каждый раз внедрять Cross-Origin? Или есть другой способ понять это?
Да, если вы работаете в угловом 2 приложения на другом домене сервер должен быть CORS -aware. К счастью, это довольно легко с Spring Boot: https://spring.io/guides/gs/rest-service-cors/ – jonrsharpe
@jonrsharpe Спасибо за ссылку! но почему мобильное устройство НЕ имеет другое происхождение? – Surras
@Surras Поскольку CORS - это проверка браузера, ваш мобильный телефон не использует браузер для рендеринга вашего приложения, по крайней мере, не полный. – Supamiu