2016-03-29 15 views
1

Ben jquery-ajax gelen struts2 eylem çağırıyorum, eylem yöntemi yöntemi düzgün çağrıldı ama ne yazık ki eylem başarı sayfası başlatılmıyor. Js yöntemi google OAuth2.0 için kullandığım yöntem.Struts2 başarı sayfası başlatılmıyor

JS:

function onSignIn(googleUser) { 
    // Useful data for your client-side scripts: 
    var profile = googleUser.getBasicProfile(); 
    console.log("ID: " + profile.getId()); // Don't send this directly to your server! 
    console.log('Full Name: ' + profile.getName()); 
    console.log('Given Name: ' + profile.getGivenName()); 
    console.log('Family Name: ' + profile.getFamilyName()); 
    console.log("Image URL: " + profile.getImageUrl()); 
    console.log("Email: " + profile.getEmail()); 

    // The ID token you need to pass to your backend: 
    var id_token = googleUser.getAuthResponse().id_token; 
    console.log("ID Token: " + id_token); 
    console.log("Request sent through ajax jquery"); 

    $.ajax({ 
      type : "POST", 
      url : "googlesignup", 
      data:"idtoken="+id_token, 
      dataType : "text", 
      async: false, 
      // onSuccess:function(){ 
      // console.log("success"); 
      // } 
     });} 

struts.xml:

<action name="googlesignup" class="com.msventure.web.actions.SignUpAction" method="googleSignUp"> 
     <result name="success">/buildprofile.jsp</result> 
     <result name="fail">/signup.jsp</result> 
     <result name="index">/signup.jsp</result> 
     <result name="input">/signup.jsp</result> 
    </action> 

Güncelleme:

    Sadece kontrol
  1. i kuruyorum eylem yönteminde bazı çerez değeri, çerezler istemcide güncellenmektedir.Ancak, başarıdan yanıt buildprofile.jsp, değiştirilmeli ama son sayfayı görüntüler.

  2. ajax'e verilen yanıt şimdi hata geri çağırma işlevine gidiyor.

Önerileriniz büyük beğeni topluyor.

+0

Bu ajax isteğidir. Ondan nasıl yanıt gösteriliyor? –

+0

@Aleksandr M: Evet, bunu anlıyorum, bunun değişmemesinin sebebi olduğunu düşünüyorum, bir yönlendirme yaptım ve iyi çalışıyor. – coolmego

+0

Bundan sonra yönlendirme yapıyorsanız ajax noktası nedir? –

cevap

1

İlk emin url, o url : "googlesignup" ihtiyacı gibi bir şey olması bu doğru harekete görünüyor olun: url : "googlesignup.action", adres çubuğuna kendi url yazarak elle test ve buildprofile.jsp olan sonuç görürseniz kontrol edebilirsiniz.

İkinci sonuç sayfasını göstermek için doğru success yöntemini tanımlamanız gerekiyor. gibi

$.ajax(
     .... 
     success: function(result){ 
     $("#someDiv").html(result); 
     } 
}); 

sayfanıza bir <div id="someDiv"></div> olduğundan emin olun.

+1

Struts2 varsayılan olarak boş uzantı kullanabilirsiniz. –

+0

@RomanC tarafından belirtildiği gibi '' olarak ayarlarsanız, 'url:" googlesignup "' sorununu kullanamazsınız –

+0

Bkz. Http: // stackoverflow. com/a/17570547/573032 ve özellikle Steven Benitez'in yorumu. –