функция fetch повторно не отправляет запрос

353
22 июня 2017, 06:58

Помогите, пожалуйста, с такой проблемой. Пытаюсь отправить кроссдоменный запрос c помощью fetch API.

 send(url, params, header) {
    var headers = header || {};
    headers['Content-Type'] = 'application/json';
    var options = {
        method: 'POST',
        headers: headers,
        body: JSON.stringify(params),
        mode:'cors'
    };
    return  Rx.Observable.fromPromise(fetch(url, options));
}

nginx настроен так, что отдаёт 200 статус по OPTIONS, а в заголовках отправляет, какие методы открыты. Но браузер не отправляет второй запрос. Его надо отправлять в ручную.

Так же получаю ошибку когда отправляю POST

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. The response had HTTP status code 404. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Вопрос 1: Как добиться того, чтобы отправлялся второй запрос после ответа OPTION ?

Вопрос 2: Почему возвращается No 'Access-Control-Allow-Origin' если он установлен в 'Access-Control-Allow-Origin' *. Может это связано 404 статусом?

Ответ от сервера по OPTIONS http://prntscr.com/fmb04u

READ ALSO
не работают несколько запросов

не работают несколько запросов

Как синхронизировать несколько запросов?

193
Некорректно отрабатывает скрипт

Некорректно отрабатывает скрипт

На сайте sticky меню при скроле не открываетсяИзначально стиль display: none; при клике вижу в инспекторе, что срабатывает display: block;, но буквально сразу...

247
не работают несколько запросов javascript

не работают несколько запросов javascript

На одной страничке располагаются функции инициализации карт от гугл и функция автозаполнения форм тоже от гугла, и они никак не хотят работать...

324