2013-10-24 33 views
7

Xin chào, tôi mới sử dụng JSON. Câu hỏi của tôi là cách chuyển dữ liệu JSON sang các dịch vụ web an toàn thông qua ajax?cách chuyển dữ liệu JSON vào các dịch vụ web an toàn thông qua ajax và cũng làm cách nào để lấy dữ liệu JSON?

Vui lòng trợ giúp tôi.

tôi đã cố gắng bằng cách làm theo mã nhưng tôi không chắc chắn về điều đó

MY TRANG INDEX

<script type="text/javascript"> 

$(document).ready(function(){ 

    var uname = document.getElementById("uname").value(); 
    var password = document.getElementById("pwd").value(); 


    $('#ok').click(function(){ 
     $.ajax({ 
      url:'http://localhost:8090/LoginAuthRWS/rest/orders', 
      type:'post', 
      dataType: 'Jsondemo', 


      success: function(data) { 
       $('#name').val(data.name); 
       $('#email').val(data.email); 

       var JSONObject= { 
         "uname":uname, 
         "password":password 
         }; 
      } 
     }); 
    }); 
}); 

</script> 

Trả lời

9
var JSONObject= {"uname":uname, "password":password }; 
var jsonData = JSON.parse(JSONObject);  

var request = $.ajax({ 
    url: "rest/orders", 
    type: "POST", 
    data: jsonData, 
    dataType: "json" 
});   
+0

Cảm ơn Ur Trợ giúp Arvind –

+0

sử dụng JSON.stringify trả về một chuỗi json đại diện cho đối tượng javascript. JSON.parse chuyển đổi một chuỗi thành đối tượng javascript – micha

+2

bạn đã bỏ lỡ contentType: 'application/json' – Arashsoft

1

Bạn muốn làm một cái gì đó như thế này:

$('#ok').click(function(){ 
     $.ajax({ 
      url:'http://localhost:8090/LoginAuthRWS/rest/orders', 
      type:'post', 
      dataType: 'json', 
      data: { name: "John", location: "Boston" } 

      success: function(data) { 
       response = $.parseJSON(data); 
       $('#name').val(response.name); 
       $('#email').val(response.email);  
      } 
     }); 
}); 

Một vài điều cần lưu ý:

  • dataType phải gần như luôn luôn xml hoặc json. Đôi khi JQuery có thể đoán chính xác nếu bạn không cung cấp bất cứ điều gì. Nhưng nó cần phải là một điều thực sự.
  • Vì bạn đang làm một bài đăng, bạn cần gửi dữ liệu đến điểm cuối REST. Đó là những gì tôi có trong data. Lưu ý rằng loại dữ liệu khớp với giá trị trong dataType. Cũng lưu ý rằng bạn có thể sử dụng phương thức $.post để thực hiện một bài đăng đơn giản hơn nhiều với JQuery.
  • Thông số data đối với cuộc gọi lại thành công cần phải được phân tích cú pháp dưới dạng JSON trước (giả sử đó là những gì sẽ quay lại) vì nó thuộc loại PlainObject như được mô tả here. Đó là những gì $.parseJSON làm. Một khi bạn làm điều đó, bạn có thể điều hướng cây JSON khi cần thiết để làm những gì bạn cần làm. Bạn có thể có được để có được đi mà không làm điều đó mặc dù.

Hy vọng điều đó sẽ hữu ích.

4

Vấn đề với mã của bạn:

  • .value là một tài sản không phải là một chức năng
  • Bạn muốn vượt qua json sử dụng data của $.ajax
  • Không có kiểu dữ liệu như Jsondemo bạn phải sử dụng JSON
  • nếu phản hồi data không phải là JSON, bạn có thể sử dụng $.parseJSON để chuyển đổi thành JSON

Hoàn Mã

$(document).ready(function(){ 
    $('#ok').click(function(){ 
     var uname = document.getElementById("uname").value; 
     var password = document.getElementById("pwd").value; 
     var JSONObject= { 
      "uname":uname, 
      "password":password 
      }; 

     $.ajax({ 
      url:'http://localhost:8090/LoginAuthRWS/rest/orders', 
      type:'post', 
      data : JSONObject,  
      dataType: 'JSON', 
      success: function(data) { 
        var jsonData = $.parseJSON(data); //if data is not json 
        $('#name').val(jsonData.name); 
        $('#email').val(jsonData.email); 
       } 
     }); 
    }); 
});  
+1

bạn bỏ lỡ contentType: 'application/json' – Arashsoft

1

jQuery dataType Reference.

thể dataType giá trị: xml, json, script, hoặc html

Hãy thử điều này:

var dataToServer = { 
    uname : document.getElementById("uname").value, 
    document.getElementById("pwd").value 
}; 

$.ajax({ 
    url:'http://localhost:8090/LoginAuthRWS/rest/orders', 
    type:'post', // or put 
    contentType: 'application/json', // type of data 
    data: JSON.stringify(dataToServer) // make JSON string 
    dataType: 'json', // type of return result 
    success: function(data) { 
    $('#name').val(data.name); 
    $('#email').val(data.email); 
    } 
}); 
+0

Bạn đang gửi một chuỗi phong cách json đến máy chủ. Tuy nhiên, bạn nên gửi đối tượng kiểu json đến máy chủ (data: dataToServer). – Arashsoft

1

Để vượt qua các giá trị các dịch vụ web Ajax có dữ liệu thuộc tính.

<script type="text/javascript"> 

$(document).ready(function(){ 

var uname = document.getElementById("uname").value; 
var password = document.getElementById("pwd").value; 


$('#ok').click(function(){ 
    $.ajax({ 
     url:'http://localhost:8090/LoginAuthRWS/rest/orders', 
     type:'post', 
     dataType: 'Json', 

     data:{ 
      uname:uname, 
      password:password 
     }, 

     success: function(data) { 
      $('#name').val(data.name); 
      $('#email').val(data.email); 
     } 
    }); 
    }); 
}); 

</script> 
+0

Cảm ơn Anto Robinson .. –

+0

@JagathesewarenKuppuraj, '.value' là tài sản không phải là chức năng – Satpal

+0

Tôi đã thay đổi mã của mình. –

0

Bạn có thể truyền dữ liệu json theo yêu cầu của cơ thể như thế này:

var JSONObject= {"uname":uname, "password":password }; 
    $.ajax({ 
     url : env + 'rest/orders', 
     type : 'POST', 
     headers: { 
      'Content-Type':'application/json' 
     }, 
     data : JSON.stringify(JSONObject), 
     dataType : "json", 
    }); 
Các vấn đề liên quan