Ract Access-Control-Allow-Origin Ошибка API


(Константин Маревцев) #1

Никак не могу не понять почему запрос не проходит

Есть сервис с открытым API
http://data.gov.spb.ru/api/v1/datasets/

Условия сервиса требуют послать в заголовке
authorization:
Token e3019694305911088a8d7add7f88b05af31cbe03

Проверяю через браузерное расширение, API работает, ответ 200, данные отображаются

Пытаюсь провернуть то же самое в React

[JS] componentDidMount() {

        let myHeaders = new Headers();
        myHeaders.append("Authorization-Type", "Token e3019694305911088a8d7add7f88b05af31cbe03");
        myHeaders.append("Content-Type", "application/json");
        myHeaders.append("Access-Control-Allow-Origin", "*");

        let myInit = {
            method: 'GET',
            headers: myHeaders
        };

        let myRequest = new Request('http://data.gov.spb.ru/api/v1/datasets/', myInit);

        fetch(myRequest).then(res => res.json())
        .then( (myBlob) => {
            console.log(myBlob);
        }).catch((e) => {
            console.log(e);
        })



    }[/JS]

И получаю ошибку

Failed to load http://data.gov.spb.ru/api/v1/datasets/: Response to preflight request doesn’t pass access control check: The ‘Access-Control-Allow-Origin’ header contains multiple values ‘*, *’, but only one is allowed. Origin ‘http://localhost:3000’ is therefore not allowed access. Have the server send the header with a valid value, or, if an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

Как быть ???


#2

все ж вроде на редкость подробно расписано в ответе сервера. :slight_smile: