我的服务器中有以下代码。我正在使用mongoose和s3上传图像,然后想要将用户重定向到另一个页面,但这不会发生。 (上传成功)。
Routes.js:
{path: '/success', method: 'GET', config: controller.success} ......
controller.js:
imageUpload: {
payload: {
maxBytes: 209715200,
output: 'file',
parse: true
},
handler: function(request, reply) {
var userName = request.auth.credentials.username;
members.findMemberByUsername(userName, function(err, member){
if (err) {
return reply.view('upload', {error: err});
} else if (member) {
var IDImagePath = request.payload.uploadedIDname.path;
console.log(IDImagePath);
members.addID(member, IDImagePath, function(err1){
console.log("add id error", err1);
if (err1){
return reply.view('upload', {error: err1, member: member});
} else {
console.log("SUCCESSFUL!");
return reply.redirect('/success');
}
});
}
});
}
},
success: {
handler: function (request, reply){
request.auth.session.clear();
console.log("success handler working!!");
return reply.view('success');
}
}
代码命中控制器中的console.log("SUCCESSFUL") and console.log("success handler working!!")
,但重定向不会发生。顺便说一句,我使用'Jade'作为模板语言,所以我有一个success.jade
。感谢。
答案 0 :(得分:0)
我发现了问题所在。我在客户端使用AJAX但没有取得成功'重新加载页面的方法:
$('#submitID').click(function(){
var formData = new FormData($('#uploadID')[0]);
$.ajax({
url: '/api/image',
type: 'POST',
xhr: function() { // Custom XMLHttpRequest
var myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
console.log(myXhr.upload);
}
return myXhr;
},
success: function(data) {
window.location.href = "/success"
},
data: formData,
cache: false,
contentType: false,
processData: false
}, "json");
});
我需要window.location.href = "/success"
来重新加载页面。请注意,jQuery Ajax SUCCESS方法与我的' / success'不同。路线,他们恰好是同一个词。