【问题标题】:Express rest api call with angular 2 How to使用 Angular 2 表达休息 api 调用如何
【发布时间】:2017-02-10 15:56:48
【问题描述】:

您好, 我有一个从 Angular 2 调用休息 api 的小问题。 我有一个休息 api 端点:

api/room/byName/:roomName

如果我使用邮递员等 restfull 工具并调用 api http://localhost:3000/api/room/byName/roomname1 这可以正常工作并获得结果。 但是当我可以从 angular2 调用它时,其余的 api 甚至都没有被调用。

 let params: URLSearchParams = new URLSearchParams();
 params.set('roomName', roomName);
  return this
  .http
  .get('/api/room/byName',{search:params})
  .map((response: Response) => response.json());

我确定,我没有正确调用它。感谢您对如何从角度 2 调用它的帮助。

谢谢

编辑

在得到建议后,这是我现在的代码,但仍然没有运气: 角度调用:

    return this.http
  .get('/api/room/byName/'+roomName)
  .map((res: Response) => res.json());

快递端点:

var rooms = express.Router();
rooms.get('/byName/:roomName', function(req,res){

var roomn = req.params.roomName;
console.log('Looking by roomName: ' + roomn);
Room.findOne({ "roomName": roomn }, function(err, rooms) {
    if (err) {

        next(err);
     } else {

        res.json(rooms);
     }
 });

});

如果我从浏览器调用端点,这可以正常工作: http://localhost:3000/api/room/byName/test

【问题讨论】:

  • 你能提供你的快递工具吗
  • 您是否订阅了 observable?
  • 您遇到错误了吗?
  • 完全没有错误。从浏览器调用此端点时工作正常:localhost:3000/api/room/byName/test
  • 添加问题而不是评论@leo

标签: rest angular


【解决方案1】:

Http get 只接受 url 而不是 body 作为参数。它不是一个有 body 的帖子。

试试:

let params: URLSearchParams = new URLSearchParams();
 params.set('roomName', roomName);
  return this
  .http
  .get(`/api/room/byName/${roomName}`)
  .map((response: Response) => response.json());

【讨论】:

  • 是的..但是http函数'get'没有单独的参数来接受它..它们应该包含在url中。检查答案中的api链接。
  • 我已经特别说它不是发布有正文,它只需要 url。我不确定他们会如何认为相反..OP 正在调用 get 并将搜索参数作为单独的参数传递,例如正文中的参数。我刚刚指定参数不可用
【解决方案2】:

首先确保您已启用CORS

第二个:改变这个

let params: URLSearchParams = new URLSearchParams();
params.set('roomName', roomName);
return this
  .http
  .get('/api/room/byName',{search:params})
  .map((response: Response) => response.json());

到:

return this
  .http
  .get('/api/room/byName/'+ roomName)
  .map((response: Response) => response.json());

【讨论】:

    猜你喜欢
    • 2017-05-27
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多