2012-11-05 74 views
13

Tôi muốn gửi mảng JavaScript tới servlet bằng cách sử dụng jQuery $.ajax.

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

     }); 

Khi tôi sử dụng

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

Nó trả về null.

Tôi làm cách nào để truy cập các giá trị?

+1

dữ liệu là một đối tượng JSON vì vậy nó phải được như dữ liệu: {cặp tên giá trị, nơi giá trị có thể là một đối tượng} –

+1

tôi không thấy bất cứ nơi nào bạn xác định một tham số có tên _json_ vì vậy tôi không chắc chắn tại sao bạn mong đợi _getParameter ("json") _ trả về bất kỳ thứ gì khác ngoài null. – jahroy

+0

Bạn đang cố gắng đăng lên một tệp phía máy chủ? để lưu trữ dữ liệu trong cơ sở dữ liệu chẳng hạn? –

Trả lời

30

Gửi mảng dưới dạng giá trị của đối tượng JS để bạn kết thúc dưới dạng {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.... 
    }, 
}); 

Trong servlet, bạn cần thêm tên thông số yêu cầu với [].

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

jQuery nối chúng để thân thiện với hướng weak typed languages như PHP.

+0

những gì tôi làm ở phía servlet ??? – IbrahimAsad

+0

Hãy thử sử dụng request.getParameterValues ​​('json') –

+1

Đã xảy ra lỗi ở phía máy chủ mà bạn có thể phải sử dụng .. request.getParameterValues ​​("json []"); –

-1

Bạn cần gửi dữ liệu javascript của bạn phản đối như thế này ..

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

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

Bạn cần phải chuyển đổi mảng của bạn đến một JSON gõ nên thay vì [] nó cần phải đọc

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

để thực hiện việc này, bạn cần gọi số

var json = JSON.stringify(array) 

sau đó bạn có thể vượt qua nó vào cuộc gọi ajax của bạn

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

những gì tôi làm ở phía servlet ??? – IbrahimAsad

Các vấn đề liên quan