获取api - itunes搜索api错误

时间:2016-07-12 10:24:31

标签: javascript fetch-api

我正在尝试使用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数据?

谢谢, 戴夫

1 个答案:

答案 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错误的原因。