YQL 获取 returns 个空对象

YQL fetch returns empty object

我正在尝试从不允许 CORS 的域中检索 json,而且我无权访问服务器以允许它。我已将 url 替换为 googleapis 作为示例。

  const url = 'https://www.googleapis.com/storage/v1/b/example-bucket/o/foo%2f%3fbar';
  const yUrl = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D%22' + encodeURIComponent(url) + '%22&format=json';

  fetch(yUrl)
        .then(function(response){
        alert(JSON.stringify(response, null, 4));
    })

如果我们在浏览器中打开 yUrl,它工作正常:http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20json%20where%20url%3D%22https%3A%2F%2Fwww.googleapis.com%2Fstorage%2Fv1%2Fb%2Fexample-bucket%2Fo%2Ffoo%252f%253fbar%22&format=json

然而,提醒(并因此返回)提取的响应是空的。

请指导我正确的方向。谢谢。

P.S。我不想使用 jQuery,更喜欢 JavaScript.

A fetch(…) 调用 returns 包含响应对象的承诺,要从中获取 JSON,您需要使用 .json() 方法,该方法 returns 包含 JSON.

的承诺

所以大家一起来看序列化的JSON数据,需要这样操作:

fetch(yUrl)
    .then(response => response.json())
    .then(json => JSON.stringify(json))
    .then(function(json) {
        alert(json);
    })