Javascript 获取响应截止
Javascript fetch response cutoff
我开始学习 react-native 和 运行 在 Android 上使用 fetch 时遇到一些问题。
try {
let response = await fetch(REQUEST_URL, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
***parameters***
})
});
let responseJson = await response;
if(responseJson){
// console.log(responseJson);
console.log(responseJson.text());
// console.log(responseJson.json());
}
} catch(error) {
console.error(error);
}
请求已正确发送,但未完整显示答案:
(**loads more data before**){"ID":"779","DESCRICAO":"ZXCVB","CLIENTENUMERO":"10133","CLIENTENOME":"Lda 1","TREGISTO":"2015\/11\/24 09:34:15","TTERMO":"","SITUACAO":"C","TIPO":"P","NOTIFICACOES":"email","NOTIFI_TAREFA":"","ESFORCOS_TOT":"4","TEMPOGASTO_TOT":"0:01:44","TEMPOGASTO_PES":"0:01:44","PROJECTO":"New Products","USERNAME":"AT","UREGISTO":"S","EMCURSO":"0","TULTIMO":"2015\/12\/18 20:37:56","EQUIPA":"","NIVEL":"AVISAX"},{"ID":"783","DESCRICAO":"123","CLIENTENUMERO":"10133","CLIENTENOME":"Lda 1","TREGISTO":"2015\/11\/24 09:43:26","TTERMO":"","SITUACAO":"C","TIPO":"P","NOTIFICAC
如您所见,JSON 对象不完整。在浏览器中使用其他方法发送相同的请求 returns JSON 正确。
我想知道这是否是 fetch 或 Android 的实际问题。
我试过在 fetch 中将大小和超时参数设置为 0,但它什么也没做。
编辑:也尝试使用同步获取而不是异步,效果相同:
fetch(REQUEST_URL, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
***params***
})
})
.then((response) => response.text())
.then((responseText) => {
console.log(responseText);
})
.catch((error) => {
console.warn(error);
}
也尝试过:
console.log(responseJson);
和
console.log(responseJson.json());
编辑以进一步说明:
当使用 response.json() 时,响应显示为 json(正如预期的那样),但它仍然不完整。
编辑 :: 问题是 console.log 限制了它在控制台中显示的字符数。
快速提问:
如果你用postman打到端点,你能得到完整的json对象吗?很可能是您的 server/service 切断了消息。
最后,(我看到你在上面提到了这一点)但是当我知道这是符号类型时,我总是使用 'json' 方法关闭响应 obj - 这应该是 return 一个承诺。
fetch(REQUEST_URL, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
***params***
})
})
//get the response and execute .json
.then((r) => r.json())
//then listen for the json promise
.then((j) => {
console.log(j);
})
.catch((error) => {
console.warn(error);
}
让我知道发生了什么,如果你得到了 postman(或 fiddler compose)的完整回复。
我开始学习 react-native 和 运行 在 Android 上使用 fetch 时遇到一些问题。
try {
let response = await fetch(REQUEST_URL, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
***parameters***
})
});
let responseJson = await response;
if(responseJson){
// console.log(responseJson);
console.log(responseJson.text());
// console.log(responseJson.json());
}
} catch(error) {
console.error(error);
}
请求已正确发送,但未完整显示答案:
(**loads more data before**){"ID":"779","DESCRICAO":"ZXCVB","CLIENTENUMERO":"10133","CLIENTENOME":"Lda 1","TREGISTO":"2015\/11\/24 09:34:15","TTERMO":"","SITUACAO":"C","TIPO":"P","NOTIFICACOES":"email","NOTIFI_TAREFA":"","ESFORCOS_TOT":"4","TEMPOGASTO_TOT":"0:01:44","TEMPOGASTO_PES":"0:01:44","PROJECTO":"New Products","USERNAME":"AT","UREGISTO":"S","EMCURSO":"0","TULTIMO":"2015\/12\/18 20:37:56","EQUIPA":"","NIVEL":"AVISAX"},{"ID":"783","DESCRICAO":"123","CLIENTENUMERO":"10133","CLIENTENOME":"Lda 1","TREGISTO":"2015\/11\/24 09:43:26","TTERMO":"","SITUACAO":"C","TIPO":"P","NOTIFICAC
如您所见,JSON 对象不完整。在浏览器中使用其他方法发送相同的请求 returns JSON 正确。
我想知道这是否是 fetch 或 Android 的实际问题。
我试过在 fetch 中将大小和超时参数设置为 0,但它什么也没做。
编辑:也尝试使用同步获取而不是异步,效果相同:
fetch(REQUEST_URL, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
***params***
})
})
.then((response) => response.text())
.then((responseText) => {
console.log(responseText);
})
.catch((error) => {
console.warn(error);
}
也尝试过:
console.log(responseJson);
和
console.log(responseJson.json());
编辑以进一步说明:
当使用 response.json() 时,响应显示为 json(正如预期的那样),但它仍然不完整。
编辑 :: 问题是 console.log 限制了它在控制台中显示的字符数。
快速提问:
如果你用postman打到端点,你能得到完整的json对象吗?很可能是您的 server/service 切断了消息。
最后,(我看到你在上面提到了这一点)但是当我知道这是符号类型时,我总是使用 'json' 方法关闭响应 obj - 这应该是 return 一个承诺。
fetch(REQUEST_URL, {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
***params***
})
})
//get the response and execute .json
.then((r) => r.json())
//then listen for the json promise
.then((j) => {
console.log(j);
})
.catch((error) => {
console.warn(error);
}
让我知道发生了什么,如果你得到了 postman(或 fiddler compose)的完整回复。