FETCH API 返回 [object 对象]

FETCH API returning [object Object]

我正在使用 FETCH API 获取存储在 json 文件中的值。该值必须进入变量。

问题是 - 变量最终持有 [object Object] 作为值。

var title = fetch('URL/out.json', {mode: 'cors'});

在托管 json 文件的服务器的 htaccess 中,有一行

  Header set Access-Control-Allow-Origin "*"

json如下

 {
   lollol
}

我认为 json 可能是罪魁祸首。

我找不到[object Object]成为变量值的原因。

我可以使用 Fetch 获取托管文本文件吗?我试过了 - 无法让它工作。 - 正在考虑替代方案。

您需要将对象字符串化以将其转换为 JSON 字符串。

尝试JSON.stringify(theObject)

尝试使用 .then() 描述 here:

fetch('URL/out.json', {mode: 'cors'}).then(function(response) {
    return response.blob();
}).then(function(response) {
    // process response
});

这个很好用

var myRequest = new Request('URL');
var title;
fetch(myRequest).then(function(response) {
    return response.text().then(function(text) {
        title= text; 
        alert (title);
    });
});

fetch API 非常注重承诺 获取 returns 一个以响应对象作为参数的承诺 然后你需要在响应上调用一个方法来给你另一个 promise 和结果

这是我做的一个例子。在第一个 .then() 中,我在响应中调用了 .json,这样我可以在下一个 .then()

中得到我的结果
export function newVideoAsync(videoData, url) {
  return (dispatch) => {
    return fetch(url, {
      method: 'POST',
      headers: {
        'content-type': 'application/json'
      },
      body: JSON.stringify(videoData)
    })
    .then(response => response.json())
    .then(jsonData => {
      dispatch(videoSuccess(jsonData))
      console.log(jsonData);
      // find video id to redirect to that video
      // client side redirect to '/video/:id'
      browserHistory.push('/')
    })
    .catch(err => dispatch(videoError(err.message)));
  };
};

https://davidwalsh.name/fetch

对于在遵循正确的 fetch 语法时仍然遇到此问题的任何人,请尝试执行以下后续步骤(在拔头发之前:)):

  1. 从您的项目中清除缓存
  2. 删除并重新安装外部 libs/modules
  3. 重新启动您的项目