У меня есть API, работающий на сервере, и клиентский интерфейс, подключающийся к нему для извлечения данных. Я провел некоторое исследование проблемы кросс-домена и работал. Однако я не уверен, что изменилось. Теперь я получаю эту ошибку в консоли:
XMLHttpRequest не может загрузить https://api.mydomain/api/status. нет Заголовок заголовка Access-Control-Allow-Origin присутствует в запрошенном ресурс. Происхождение http://beta.mydomain.com 'поэтому не допускается доступ. В ответе был код состояния HTTP 502.
У меня есть следующий файл маршрута:
var express = require('express');
var router = express.Router();
var Assessment = require('../app/models/assessment');
router.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
});
router.post('/api/status', function (req, res, next) {
getStatus.getStatus(req, res, Assessment);
});
module.exports = router;
И следующий JavaScript делает вызов Ajax на этот маршрут:
var user = {
'uid' : '12345'
};
$.ajax({
data: user,
method: 'POST',
url: 'https://api.mydomain/api/status',
crossDomain: true,
done: function () {
},
success: function (data) {
console.log(JSON.stringify(data));
},
error: function (xhr, status) {
}
});
Я пробовал: Помещение запрашивающего домена в заголовок "Access-Control-Allow-Origin" Использование модуля cors для выражения Помещение моей функции router.all внутри промежуточного ПО
Запросом домена является HTTP и домен api находится на HTTPS. Тем не менее, я работал, пока HTTP был включен.
Есть ли у кого-нибудь представление о том, почему заголовок "Access-Control-Allow-Origin" не отправляется?
Спасибо