【问题标题】:fetch api - itunes search api error获取 api - iTunes 搜索 api 错误
【发布时间】:2016-07-12 22:46:32
【问题描述】:

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

谢谢, 戴夫

【问题讨论】:

标签: javascript fetch-api


【解决方案1】:

来自 MDN (https://developer.mozilla.org/en-US/docs/Web/API/Request/mode):

no-cors — 防止方法成为 HEAD、GET 以外的任何东西 或发布。如果有任何 ServiceWorkers 拦截了这些请求,他们可能不会 添加或覆盖除这些之外的任何标题。此外,JavaScript 不得访问结果响应的任何属性。这确保 ServiceWorkers 不会影响 Web 的语义和 防止因跨平台泄露数据而引起的安全和隐私问题 域。

这就是为什么在解析空字符串JSON.parse("")时在JS中得到空响应和JSON错误的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 2016-08-23
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多