Компания, в которой я работаю, использует биометрическую посещаемость и синхронизирует данные на серверах Zoho для ведения учета. Я пытался разработать веб-приложение с использованием API-интерфейса Zoho People, который позволяет мне знать, когда я зарегистрировался и когда истечет 8,5 часов.
Я использовал Create-React-App для разработки того же самого.
Теперь вызовы API работают правильно на сервере узла, где я могу регистрировать данные, но когда я запускаю локальный сервер с помощью npm start, Chrome не может показать данные, и я получаю следующую ошибку:
Failed to load https://people.zoho.com/people/api/attendance/getAttendanceEntries?authtoken=*******&date=05-Sep-2018&dateFormat=dd-MMM-yyyy&emailId=******&empId=****: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Чтобы обойти эту проблему, мне пришлось установить расширение Allow-Control-Allow-Origin chrome: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en
Используя это расширение, приложение работает, и я могу видеть данные. Но без этого расширения я не. Попытался включить некоторые HTTP-заголовки, связанные с CORS, в файл js, но безрезультатно. Пожалуйста, дайте мне знать, если требуется более подробная информация. Спасибо!
P.S. Я также был бы очень признателен, если бы кто-нибудь смог ELI5 объяснить, почему это происходит, и как на самом деле работает передача данных с сервера API на мой клиент.