gpt4 book ai didi

javascript - http 请求以 html 而不是 json 响应

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:09 24 4
gpt4 key购买 nike

我已经进行了一些 vimeo api 调用来获取视频,但是当我在服务器上执行 get 请求时,它会使用该路径上的 html 而不是服务器中的数据进行响应。我还使用 Angular-client-side-auth ( https://github.com/fnakstad/angular-client-side-auth )。我对此很陌生,所以我很难理解为什么会发生这种情况。

服务器.js

app.get('/api/mostviewed', function (req, res) {
MostViewed.find({}, { _id: 0, iframe: 1 }, function (err, docs) {
res.json(docs);
});
});

在client-side-auth的routes.js里面有这个,它导致了这一切(这个文件位于服务器端):

{
path: '/*',
httpMethod: 'GET',
middleware: [function(req, res) {
var role = userRoles.public, username = '';
if(req.user) {
role = req.user.role;
username = req.user.username;
}
res.cookie('user', JSON.stringify({
'username': username,
'role': role
}));
res.render('index');
}]
}

我该如何解决这个问题?我想保留路径:'/*',或者在保持功能相似的同时更改它,这样我就可以从服务器获取数据。或者有其他方法可以解决这个问题吗?

编辑:解决方案

{
path: '/api/mostviewed',
httpMethod: 'GET',
middleware: [Video.getmostviewed]
},

在 Video.js 中我做了这个:

getmostviewed: function(req,res){
MostViewed.find({}, { _id: 0, iframe: 1 }, function (err, docs) {
res.json(docs);
});
}

最佳答案

在您的情况下,客户端找不到与 /api/mostviewed 对应的逻辑,因此到达 /* 并显示 html 而不是 json.

可能的解决方案

/*之前添加以下类似逻辑

{
path: '/api/*',
httpMethod: 'GET',
middleware: [function(req, res) { // sample middleware logic
var role = userRoles.public, username = '';
if(req.user) {
role = req.user.role;
username = req.user.username;
}
res.cookie('user', JSON.stringify({
'username': username,
'role': role
}));
}]
},

关于javascript - http 请求以 html 而不是 json 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37201365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com