2015-12-01 14 views
5

il seguente codice JavaScript funziona con la finestra facebook login appare e permette ad un utente di accesso. I valori di risposta vengono catturati e so che funziona come avvisi appaiono in cui messa a punto, ma non posso passare il valore di nuovo ad un metodo di controllo.passaggio JavaScript variabile di risposta della molla funzione del controller

@RequestMapping(value ="/getAccessToken" , method = RequestMethod.POST) 
public @ResponseBody String getAccessToken(@RequestBody String token){ 

    System.out.println(token); 

    return token; 
    } 

metodo Javascript chiamato:

function doLogin() { 
     FB.login(function(response) { 
     alert(response); 
     console.log(response); 
     if (response.authResponse) { 
        alert(response.authResponse.userID); 
        alert(response.authResponse.accessToken); 
        var Token = response.authResponse.accessToken; 
        alert(Token); 
        $.ajax({ 
         type: "POST", 
         url: "/HelloController/getAccessToken", 
         data: Token, 
         success: function (result) { 
           alert("Token"); 
         }, 
         error: function (result) { 
           alert("oops"); 
         } 
        }); 
        document.getElementById('loginBtn').style. 
     display = 'none'; 
     getUserData(); 
     }}, {perms:'manage_pages', 
     scope: 'email,public_profile', return_scopes: true}); 
    }; 

L'errore che ottengo è il seguente:

WARN 25660 --- [nio-8080-exec-9] 
o.s.web.servlet.PageNotFound    : 
Request method 'POST' not supported 

Apprezzare le risposte.

+0

è il controller annotato con @RequestMapping ("/ HelloController ")? – reos

+0

@RequestMapping (value = "/ HelloController", metodo = RequestMethod.POST) public String getAccessToken ( – vbNewbie

+1

Puoi postare l'intera classe Controller? – Mohit

risposta

2

Il problema potrebbe essere che si sta utilizzando una nuova versione di jQuery che invia i dati di richiesta di dati del modulo posta invece di JSON come predefinito. Prova a cambiare la tua chiamata Ajax al seguente. I dati del modulo non sarebbero stati riconosciuti dal controller, quindi se questo è il caso si dovrebbe vedere un 404.

$.ajax({ 
     type: "POST", 
     traditional: true, 
     url: "/HelloController/getAccessToken", 
     data: JSON.stringify(Token), 
     success: function (result) { 
      alert("Token"); 
     }, 
     error: function (result) { 
      alert("oops"); 
     } 
     }); 

Per riferimento vedi questo post: Send JSON data via POST (ajax) and receive json response from Controller (MVC)

+0

Forse questo aiuterà? si prega di accettare la risposta, se lo ha fatto. Ci scusiamo per l' –

+0

fine follow-up e alla fine ho fatto capirlo ma accetterà la tua risposta Grazie – vbNewbie

+0

mi dispiace,... ho rivisitato questo programma e ancora ottenere lo stesso errore – vbNewbie

Problemi correlati