我正在使用我的React Native应用程序中的一个api。但是请求响应始终返回一个String,即使我尝试解析时看到一个错误也是如此。
我使用了axios,superagent和fetch api。但即时通讯仍面临错误,同一个错误。
fetch(`http://fonte83.com.br/wp-json/wp/v2/posts?page=1&_embed`, {
method: "GET",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded',
}
}).then(result => result.json()).then(text => console.log(text))
此代码在导航器控制台或其他应用程序上运行良好,但在我的应用程序上却一团糟。 我尝试使用此代码在axios中进行转换的另一个代码,仍然遇到错误。
if (typeof data === 'string') {
try {
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
};
}
data = JSON.parse(data.trim(''));
} catch (e) {
throw {message: 'can not JSON.parse the response'}
}
}
我收到此错误: “ JSON在位置0处出现意外令牌”。
上面的这两个代码来自不同的尝试
奇怪的是,因为代码在其他位置运行。 谁能帮我吗?
答案 0 :(得分:0)
Fetch API在Promise result.json()
上返回JSON对象,因此您的代码应为:
fetch(`http://fonte83.com.br/wp-json/wp/v2/posts?page=1&_embed`, {
method: "GET",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/x-www-form-urlencoded',
}
}).then(result => result.json())
.then(obj => {
console.log('Title of the first post: ' + obj[0].title.rendered);
console.log('Content of the first post: ' + obj[0].content.rendered);
});
您正在尝试解析result.json()