jquery - 使用 fetch 获取简单字符串

标签 jquery node.js rest api reactjs

所以我的 API 中有这个:

router.get('/assetName', function(req, res, next){
  //Get the token from the cookies
  var token = req.cookies.access_token;
  //Check it with the config secret
  if(jwt.verify(token, config.secret)){
    //find from name in the request body
    User.find({_id: req.query.id}).then(function(users){
      var z;
      var name = [];
      var assetHolder = users[0].assets;
      for(z=0; z < assetHolder.length; z++){
        if(assetHolder[z]._id == req.query.vid){
          name = assetHolder[z].name;
        }
      }
      console.log(name);
      res.send(name);

      //Error handling
    }).catch((err) => console.error(err));
  }else{
    res.send("Unauthorized");
  }
});

name 变量被打印到控制台,如下所示:

Asset1Name
Asset2Name

我正在使用下面的获取请求:

      var vehiclesT = asset.assetIDs;
      if(!asset.assetIDs){
        vehiclesT = [];
      }
      var y;
      var assets = [];
      for(y=0; y< assetsTemp.length; y++){
        var url = 'api/assetName/?vid='+assetsTemp[y]+'&id='+id;
        fetch(url, {credentials: 'include', method: 'get'}).then(function(data){
          console.log(data);
          vehicles.push(data);
        });
      }

但是 temp 被打印为:

Response {type: "basic", url: "http://localhost:4000/api/assetName/?vid=f4ufh49h49fh9fh94fh94hf&id=f484fh48fhfh98fh489fh", redirected: false, status: 200, ok: true…}

因此车辆数组为空。

这是为什么?如何使用 fetch(或其他更好的方法)将值打印到 API 中的控制台?

谢谢,埃德。

最佳答案

您在获取中缺少一个步骤:

fetch(url, {
  credentials: 'include',
  method: 'get'
})
.then(function(body){
  return body.text(); // <--- THIS PART WAS MISSING
}).then(function(data) {
  console.log(data);
  vehicles.push(data);
});

正如您所看到的,第一个 Promise 并没有立即为您提供正确格式的数据;它实际上给你一个 Response object ,您需要根据您想要的格式(Blob、JSON、arrayBuffer等)调用相应的方法

在本例中,您提到您期望的是文本,因此您可以使用 Response.text()

关于jquery - 使用 fetch 获取简单字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45427386/

相关文章:

javascript - 仅当存在一个或多个相关项目时才显示 slider

javascript - 如何使用 prevAll() 更改文本框文本

node.js - 传入参数的异步 waterfall

javascript - 如何将数据从 AngularJS 前端传递到 Nodejs 后端?

javascript - 使用 React 应用程序运行 'npm start' 时出现不必要的转义字符警告

java - 其余异常: Wrappers vs Error Object

javascript - 如何查找样式并将其应用于祖 parent div?

javascript - Xpath 与 js 和谷歌浏览器

rest - JIRA REST API 获取所有用户

javascript - 创建自定义休息客户端