2012-11-05 11 views
13

Chciałbym wysłać tablicę JavaScript do serwletu przy użyciu jQuery $.ajax.

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

     }); 

Gdy używam

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

zwraca NULL.

Jak uzyskać dostęp do wartości?

+1

danych jest obiekt JSON więc musi być jak dane: nazwa {parę wartości, gdzie wartość może być przedmiotem} –

+1

nie widzę wszędzie tam, definiujesz parametr o nazwie _json_, więc nie jestem pewien, dlaczego spodziewałbyś się _getParameter ("json") _, aby zwrócić coś innego niż zero. – jahroy

+0

Czy próbujesz wysłać do pliku po stronie serwera? do przechowywania danych w bazie danych na przykład? –

Odpowiedz

30

Wysyłaj tablicę jako wartość obiektu JS, aby zakończyć jako {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.... 
    }, 
}); 

W serwletu trzeba sufiks nazwy parametru żądania z [].

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

jQuery dołącza je, aby być przyjazny wobec weak typed languages jak PHP.

+0

co robię po stronie serwletów ??? – IbrahimAsad

+0

Spróbuj użyć request.getParameterValues ​​('json'). –

+1

Popełniłem błąd po stronie serwera, który może być użyty. request.getParameterValues ​​("json []"); –

-1

Musisz zamieścić swoje dane JavaScript Object tak ..

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

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

Trzeba przekształcić tablicę do pisania JSON więc zamiast [] musi czytać

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

w tym celu należy zadzwonić pod numer

var json = JSON.stringify(array) 

potem można przekazać go do ajax rozmowy

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

co robię po stronie serwletów ??? – IbrahimAsad

Powiązane problemy