2012-11-05 11 views
13

Vorrei inviare array JavaScript a servlet utilizzando jQuery $.ajax.

var json=[1,2,3,4]; 
$.ajax({ 
      url:"myUrl", 
      type:"POST", 
      dataType:'json', 
      success:function(data){ 
       // codes.... 
      }, 
      data:json 

     }); 

Quando uso

request.getParameter("json"); 
request.getParameterValues("json"); 

restituisce NULL.

Come accedere ai valori?

+1

dati è un oggetto JSON, quindi deve essere come i dati: {coppia nome valore, dove il valore potrebbe essere un oggetto} –

+1

non vedo da nessuna parte che tu definisci un parametro chiamato _json_ quindi non sono sicuro del motivo per cui ti aspetteresti che _getParameter ("json") _ restituisca qualcosa di diverso da null. – jahroy

+0

Stai cercando di pubblicare su un file lato server? per memorizzare i dati in un database per esempio? –

risposta

30

Invia array come valore dell'oggetto JS in modo che si finisca come {json:[1,2,3,4]}.

var json=[1,2,3,4]; 
$.ajax({ 
    url:"myUrl", 
    type:"POST", 
    dataType:'json', 
    data: {json:json}, 
    success:function(data){ 
     // codes.... 
    }, 
}); 

In servlet, è necessario suffisso il nome del parametro richiesta con [].

String[] myJsonData = request.getParameterValues("json[]"); 

jQuery li aggiunge in modo da essere amichevole verso weak typed languages come PHP.

+0

cosa faccio nel lato servlet ??? – IbrahimAsad

+0

Provare a utilizzare request.getParameterValues ​​('json') –

+1

Effettuato un errore sul lato server che potrebbe essere necessario .. request.getParameterValues ​​("json []"); –

-1

È necessario inviare i dati JavaScript Object come questo ..

http://api.jquery.com/jQuery.post/

$.post("test.php", { name: "John", time: "2pm" }, 
    function(data) { 
    alert("Data Loaded: " + data); 
    }); 
0

Dovete convertire il vostro array a un JSON tipo così, invece di [] ha bisogno di leggere

var array = [ 1, 2, 3, 4 ]; 

per fare questo è necessario chiamare

var json = JSON.stringify(array) 

allora si può passare nella tua chiamata AJAX

$.ajax({ url:"myUrl", 
      type:"POST", 
      data: json, 
      dataType:'json', 
      success:function(data){ 
      // codes.... 
      }}) 
+0

cosa faccio nel lato servlet ??? – IbrahimAsad

Problemi correlati