Перезаписывают ли заголовки Access-Control-Allow параметр политики среды сервера Security_AllowOrigin? - PullRequest
0 голосов
/ 26 июня 2019

Я установил Oracle Mobile Hub и создал пользовательский API, который необходимо вызывать из мобильного клиента Ionic, использующего Oracle Mobile Cloud SDK. Пользовательский API (node.js) работает без ошибок при тестировании в Backend в Mobile Hub. Это выглядит так:

module.exports = function(service) {
    service.get('/mobile/custom/patients/patients', function(req, res) {
        req.oracleMobile.connectors.patients.get(null, null, null).then(
            function(result){
                res.setHeader("Access-Control-Allow-Origin", "*");
                res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
                res.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE, PUT");
                res.setHeader("Access-Control-Allow-Credentials", "true");
                res.setHeader("Cache-Control", "no-cache");
                res.send(result.statusCode, result.result);
            },
            function(error){
                res.send(500, error.error);
            }
        );
    });
};

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

Failed to load https://xx.mobile.ocp.oraclecloud.com/mobile/platform/users/login: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8100' is therefore not allowed access.

Я использую анонимную аутентификацию в моем клиенте Ionic:

this.mcs.init(mcsConfig);
this.mcs.mobileBackend.setAuthenticationType(this.mcs.AUTHENTICATION_TYPES.basic);
this.mcs.mobileBackend.authorization.authenticateAnonymous().then(function(response) {
    console.log('anonymous authentication: success');
    console.log(response);
}).catch(function(response){
    console.log('anonymous authentication: failed');
    console.log(response);
});

Итак, мой вопрос - должны ли заголовки Access-Control-Allow, которые я добавил в своем ответе Custom API, переопределять независимо от того, какое значение Security_AllowOrigin в Mobile Hub установлено? У меня также есть плагин Enable Cross-Origin Resource Sharing Chrome, активированный в моей среде отладки (Chrome). Любые идеи относительно того, как я мог бы решить это? Все результаты Google и собственные страницы справки Ionic указывают на добавление заголовков в ответе сервера в качестве решения.

...