[英]Express rest api call with angular 2 How to
問候,從角度2調用rest api有一個小問題。我有rest 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
首先請確保您已啟用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());
Http get只接受url而不是body作為參數。
嘗試:
let params: URLSearchParams = new URLSearchParams();
params.set('roomName', roomName);
return this
.http
.get(`/api/room/byName/${roomName}`)
.map((response: Response) => response.json());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.