Выдает CORS на фейсбук oauth используя Angular

У меня есть свои методы входа в OAuth и методы обратного вызова в моем API для Facebook,Google,Twitter. Это экспресс-приложение, работающее на порту 3000.

У меня есть другое приложение angular 2, работающее на порте 4200. Я пытаюсь вызвать экспресс-адрес API через http get. Это вызывает ошибку CORS.

В запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin". Происхождение 'null', следовательно, не разрешено. Блокировка перекрестного происхождения (CORB) заблокировала ответ перекрестного происхождения с типом mime text/html

3 ответа

CORS существует для защиты вашего сервера от нежелательных внешних запросов AJAX. Вам необходимо активно включить CORS на вашем сервере, чтобы использовать его.

Поскольку вы не указали тип своего сервера, вот как это сделать на IIS и вот как это сделать на Apache. Если вы используете сервер другого типа, вы должны искать "Включить CORS" на этом конкретном типе сервера.

Рекомендуется разрешить ТОЛЬКО CORS для доменов, которые вы хотите открыть, и не разрешать все (*), так как это увеличит потенциальную уязвимость вашего сервера.

В большинстве случаев самый простой способ решить эту проблему - обновить сервер. Большинство серверных технологий обеспечивают поддержку для быстрой настройки CORS. Например, для Node и ExpressJS он состоит только из установки промежуточного программного обеспечения CORS и его использования при инициализации приложения Express:

var express = require('express') , cors = require('cors') , app = express();app.use(cors()); 
(...)

Для получения дополнительной информации см. Ссылку ниже: http://restlet.com/company/blog/2016/09/27/how-to-fix-cors-problems/

О CORS, пожалуйста, обратитесь по ссылке ниже, которую я нашел Полезно: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS

Другие вопросы по тегам