Как предотвратить ошибки CORB с помощью Backbone и Node.js / Hapi? - PullRequest
0 голосов
/ 08 марта 2019

Обновление Chrome за последние несколько дней приводит к тому, что некоторые вызовы API из моего SPA (Backbone.js) на мой сервер (Node.js под управлением Hapi) блокируются из-за ошибки CORB.Я делаю прототипирование, поэтому в настоящее время нет аутентификации.

В магистрали я использую свойство url модели и не вижу способа указать тип заголовка и полезной нагрузки.

url: function () {
     return 'http://localhost:4000/api/getSpotPrices/' + energy.type);
}

Нужно ли менять настройки в Hapi, чтобы это не происходило?

[Обновить] Я добавил настройку CORS в свою конфигурацию Hapi и установил ее в качестве символа подстановки:

server.route({
    config: {
        cors: {
            origin: ['*']
        }
    },
    method: 'GET',
    etc...
}

А теперь Chromeвыдает ошибку:

Заголовок 'Access-Control-Allow-Origin' содержит несколько значений 'http://localhost:63342, *', но допускается только одно.

Итак, без конфигурации CORS CORB блокирует мой сервисный вызов.При настройке конфигурации CORS CORS жалуется на слишком большое количество записей в заголовке.

Ответы [ 2 ]

1 голос
/ 10 марта 2019

Есть ли у вас дополнительные заголовки в вашем запросе.Это может вызвать эту проблему.

Вот моя конфигурация cors, которую я использую с моим клиентским интерфейсом.

cors: {
    origin: ['list of domains that white listed, no need for wildcard for me'],
    credentials: true, // for preflight request
    // these are the additional headers that i am using through my client code
    additionalHeaders: ['cache-control', 'x-requested-with', 'x-csrf-token', 'set-cookie'] 
},
0 голосов
/ 11 марта 2019

In смог использовать Fiddler для устранения основной причины проблемы. Моя сторона Node / Hapi работала правильно. Однако ранее я установил плагин CORS в Chrome, и он вставлял последующий шаблон в мой заголовок Access-Control-Allow-Origin. Отсюда и многозначный заголовок. После того, как я отключил кнопку CORS на моем плагине Chrome, заголовок был как положено.

...