Запрос на получение не возвращает запрошенные данные - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь получить данные XML с помощью запроса fetch () и соответствующего заголовка. Запрос выполнен успешно, но ответ пуст. Странная часть заключается в том, что вкладка сетевого подключения браузера в отладчике выдает мне 200 OK и запрашиваемую полезную нагрузку Response, но я не могу получить эти данные, даже если они присутствуют. Любые подсказки, почему?

Снимок отладчика

data = {
            get:(url)=>{
                return new Promise(resolve => {
                    let auth = new Headers({
                        "username":key.user,
                        "password":key.password,
                        "Accept":"application/xml"                 
                    })
                    
                    fetch(url,{
                        method:"get",
                        mode:"no-cors",
                        headers: auth,
                        credentials:"include"
                    })
                    .then(response => console.log(response))
                    //empty response
                })
            }
        }

1 Ответ

0 голосов
/ 05 марта 2019

Вы делаете запрос кросс-происхождения, но вы сказали, что mode:"no-cors",.

mode:"no-cors", означает «Если мне нужно разрешение на что-то кросс-происхождения, не спрашивайте его, и не«Не выдавать ошибку».

no-cors - Предотвращает использование метода чем-либо кроме HEAD, GET или POST, а заголовков - чем-то отличным от простых заголовков,Если какие-либо ServiceWorkers перехватывают эти запросы, они не могут добавлять или переопределять никакие заголовки, кроме тех, которые являются простыми заголовками.Кроме того, JavaScript может не иметь доступа к каким-либо свойствам полученного ответа.Это гарантирует, что ServiceWorkers не влияет на семантику Интернета, и предотвращает проблемы безопасности и конфиденциальности, возникающие при утечке данных между доменами.

Поскольку вам необходимо разрешение на чтение данных из кросс-сети-оригинальный запрос, он молча терпит неудачу (потому что вы явно сказали это сделать).

Используйте mode: "cors".

...