Sam*_*Sam 9 javascript ajax fetch
我正在使用fetch
API调用,一切正常,但在这个特定的实例中,我遇到了一个问题,因为API只返回一个字符串 - 而不是一个对象.
通常,API返回一个对象,我可以解析JSON对象并得到我想要的东西,但在这种情况下,我无法在响应对象中找到我从API获得的文本.
我以为我会在体内发现文字,但我似乎无法找到它.我在哪里看?
Zac*_*tle 25
使用fetch javascript API,您可以尝试:
response.text().then(function (text) {
// do something with the text response
});
Run Code Online (Sandbox Code Playgroud)
另外看一下fetch docs:这里
Maw*_*rdy 24
ES6 语法:
fetch("URL")
.then(response => response.text())
.then((response) => {
console.log(response)
})
.catch(err => console.log(err))
Run Code Online (Sandbox Code Playgroud)
您可以通过两种不同的方式执行此操作:
第一个选项是使用该response.text()
方法,但请注意,在 2019 年 12 月,其全球使用率仅为 36.71%:
async function fetchTest() {
let response = await fetch('https://httpbin.org/encoding/utf8');
let responseText = await response.text();
document.getElementById('result').innerHTML = responseText;
}
(async() => {
await fetchTest();
})();
Run Code Online (Sandbox Code Playgroud)
<div id="result"></div>
Run Code Online (Sandbox Code Playgroud)
第二种选择是改用该response.body
属性,这需要做更多的工作,但占全局使用率的 73.94%:
async function fetchTest() {
let response = await fetch('https://httpbin.org/encoding/utf8');
let responseText = await getTextFromStream(response.body);
document.getElementById('result').innerHTML = responseText;
}
async function getTextFromStream(readableStream) {
let reader = readableStream.getReader();
let utf8Decoder = new TextDecoder();
let nextChunk;
let resultStr = '';
while (!(nextChunk = await reader.read()).done) {
let partialData = nextChunk.value;
resultStr += utf8Decoder.decode(partialData);
}
return resultStr;
}
(async() => {
await fetchTest();
})();
Run Code Online (Sandbox Code Playgroud)
<div id="result"></div>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11412 次 |
最近记录: |