我将sails.js与Passport一起用于用户创建和会话。我已经创建了一个带有提交按钮的用户个人资料更新屏幕。
<form action="/user/update/<%= req.user[0].id %>" method="post" class="js-user-edit-form">
...
<button class="btn btn-primary btn-block" type="submit">Update</button>
</form>
...
<script type="text/javascript" src="/js/users.edit.js"></script>
这是js文件:
$(function() {
$('.js-user-edit-form').submit(function(event) {
event.preventDefault();
$.ajax({
type: "PUT",
url: $('.js-user-edit-form').attr('action'),
data: $('.js-user-edit-form').serialize()
})
.done(function(data) {
window.location.href = "/user";
})
.error(function() {
alert("Oops! Something went wrong.");
});
return false;
})
});
相关路线:
'get /user/edit': 'UserController.edit',
'get /user': 'UserController.index',
'get /user/:id': 'UserController.show',
用户控制器:
edit: function(req, res) {
User.findOne(req.user.id)
.done(function(err, user) {
return res.view({
user: user
});
});
},
我的问题是,在我提交更新后,我会重定向到:
http://localhost:1337/user/update/53d033e685b861924ab55870
而不是被重定向到
http://localhost:1337/user
当我使用控制台时,它输出:
Resource interpreted as Document but transferred with MIME type application/json: "http://localhost:1337/user/update/53d6207f40dee700004698e2".
据我所知,javascript不起作用,因为在它的最后我重定向到/ user但是没有发生。