我正在尝试使用iTunes搜索API和fetch api。
当我尝试以下操作时,我会在控制台中收到回复。
fetch('https://api.github.com/users/bootstrap').then(function(response) {
return response.json();
}).then(function(j) {
console.log(j);
});
然而,当我尝试
时 fetch('https://itunes.apple.com/search?term=jack+johnson',{mode: 'no-cors'}).then(function(response) {
return response.json();
}).then(function(a) {
console.log(a);
});
我收到错误Uncaught (in promise) SyntaxError: Unexpected end of input(…)
是否可以通过这种方式获取iTunes API数据?
谢谢, 戴夫
答案 0 :(得分:0)
来自MDN(https://developer.mozilla.org/en-US/docs/Web/API/Request/mode):
no-cors - 防止该方法不是HEAD,GET 或POST。如果任何ServiceWorkers拦截这些请求,则可能不会 添加或覆盖除这些之外的任何标题。此外, JavaScript 可能无法访问生成的响应的任何属性。这确保了 ServiceWorkers不会影响Web的语义 防止数据泄露引起的安全和隐私问题 域。
这就是为什么在解析空字符串JSON.parse("")
时JS中的空响应和JSON错误的原因。