2015-05-14 4 views
1

У меня есть следующий код на моем сервере. Я загружаю изображение с помощью mongoose и s3, а затем хочу перенаправить пользователя на другую страницу, но этого не происходит. (загрузка выполнена успешно).Hapi.js reply.redirect() не работает после загрузки изображения

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

Я выяснил, в чем проблема. Я использую 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», они просто одно и то же.

+0

Я рад, что вы решили свою проблему, вы должны закрыть вопрос, как он уже решил. –

Смежные вопросы