整个代码有点乱,因为我一直在尝试不同的东西,还没有认真地把它们组织起来。我正在尝试使用用户名和新电子邮件向/api/protected发送PUT请求,以更新电子邮件。这是一个受保护的路由,需要authtoken来访问它,我已经传入了它。我收到一个未经授权的错误。
function updateProfile(username, email, authToken, callback) {
const settings = {
url: '/api/protected',
data: {
username: `${username}`,
email: `${email}`,
headers: {
authorization: `Bearer ${authToken}`
},
},
dataType: 'json',
type: 'PUT',
success: callback,
error: error
};
$.ajax(settings);
}
这是ajax请求,现在在服务器端代码中:
app.put('/api/protected', jwtAuth, (req, res) => {
const updatedItem = User.update({username: req.body.username}, {$set:{email: req.body.email}})
return res.status(201).json({updatedItem});
});
发布于 2018-06-19 07:50:17
如果我们查看the documentation,我们会发现headers
属性应该在发送到$.ajax
的设置上,而不是在data
属性中。要进行补救,只需将其移出data
属性即可。例如:
function updateProfile(username, email, authToken, callback) {
const settings = {
url: '/api/protected',
data: {
username: `${username}`,
email: `${email}`,
},
headers: {
authorization: `Bearer ${authToken}`
},
dataType: 'json',
type: 'PUT',
success: callback,
error: error
};
$.ajax(settings);
}
请注意,我还清理了一些缩进,以便更容易看到正确的位置。
https://stackoverflow.com/questions/50918278
复制相似问题