получение данных ответа Fetch - PullRequest
0 голосов
/ 01 апреля 2019

Я использую Chrome DevTools для зеркалирования веб-запроса. Глядя на сетевой запрос, в ответе есть данные JSON, к которым я хочу получить доступ

Правый клик -> Копировать как выборку ->

fetch(
    "https://www.url.com/service.svc?action=FindConversation&ID=-40&AC=1",
    {
        "credentials":"include",
        "headers":{
            "accept":"*/*",
            "accept-language":"en-US,en;q=0.9",
            "action":"FindConversation",
            "content-type":"application/json; charset=UTF-8",
            "actionid":"-40",
            "unique_identifier":"062lCufCY0i5mI9NMTRUsF87XDq9ttYIonzZQjBcCOPvzoIJFOTSI6ZVNK9lMwy_iPFY2tuZzPY."
            "x-requested-with":"XMLHttpRequest"
        },
        "referrer":"https://ballard.amazon.com/OWA/",
        "referrerPolicy":"no-referrer-when-downgrade",
        "body":"contains some body data I want to manipulate",
        "method":"POST",
        "mode":"cors"
    }
).then(res => {console.log(res)})

Это распечатывает что-то вроде этого:

Response {type: "basic", url: "https://url/service.svc?action=FindConversation&ID=-40&AC=1", redirected: false, status: 200, ok: true, …}
body: ReadableStream
locked: false
__proto__: ReadableStream
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "OK"
type: "basic"
url: "https://url/OWA/service.svc?action=FindConversation&ID=-40&AC=1"
__proto__: Response

Когда я проверяю сетевой запрос, который я только что сделал, похоже, что он не возвращает никаких данных JSON, а отвечает кодом 200. Это нормально?

Я ожидал, что он вернет данные JSON, или произойдет сбой.

Кроме того, где будут данные ответа JSON в res?

1 Ответ

1 голос
/ 01 апреля 2019

Это нормальное поведение. fetch() возвращает stream объект, а не только тело.

Используйте res.json() для извлечения содержимого JSON. Для ответов не в формате JSON используйте res.text()

...