为什么我在浏览器控制台和“网络”选项卡中得到两种不同的响应

时间:2019-05-15 10:49:05

标签: javascript json api response

我正在从script.js文件进行API调用。当我向chatbot发送消息时,它在“检查”->“控制台”和“检查->网络”选项卡中给了我两个不同的响应。

  

“网络”标签

THis is network tab

  

控制台选项卡

This is console tab

  

script.js

fetch(`${url}/conversations/default/respond`, {
        mode: 'no-cors',
        method: 'POST',
        // dataType:'jsonp',
        body: JSON.stringify(data),
        headers: {
          'Content-Type': 'application/json',
        },
    })
        .then(function (response) {
            console.log("RESPONSE",response);
            if (response) {
                for (let response of response) {
                console.log(response.text);
                    createResponder(response.text);
            }
            } else {
                createResponder("Sorry, I'm having trouble understanding you, try asking me in an other way")
            }
        })
        .catch(function (err) {
            //console.log("DIFF",err);
            document.getElementById('typing').style.display = "none";
            createResponder("I'm having some technical issues. Try again later :)");
        });

1 个答案:

答案 0 :(得分:1)

“网络”标签包含请求生命期的所有数据,请求的开始,响应状态,标头,数据等...

在这部分上:

.then(function (response) {
            console.log("RESPONSE",response);
            if (response) {
                for (let response of response) {
                console.log(response.text);
                    createResponder(response.text);
            }
            } else {
                createResponder("Sorry, I'm having trouble understanding you, try asking me in an other way")
            }
        })

您正在控制台记录xhr对象本身,这就是为什么您的控制台包含“请求”数据而不是您期望的json数据的原因。

继续阅读this,并注意“响应对象”部分