如何通过ajax将JSON数据传递给restful web服务以及如何获取JSON数据?

嗨,我是JSON的新手。我的问题是如何通过ajax将JSON数据传递给宁静的Web服务?

请帮我。

我尝试了下面的代码,但我不确定

我的索引页面

 $(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 }; } }); }); });  

 var JSONObject= {"uname":uname, "password":password }; var jsonData = JSON.parse( JSONObject ); var request = $.ajax({ url: "rest/orders", type: "POST", data: jsonData, dataType: "json" }); 

代码问题:

  • .value属性不是函数
  • 您想传递$.ajax json使用data
  • Jsondemo没有数据类型你必须使用JSON
  • 如果响应data不是JSON,您可以使用$.parseJSON转换为JSON

完整的代码

 $(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); } }); }); }); 

你想做这样的事情:

 $('#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); } }); }); 

有几点需要注意:

  • dataType几乎总是xmljson 。 如果你不提供任何东西,有时JQuery可以正确猜测。 但它需要是一个真实的东西。
  • 由于您正在发布post,因此需要将数据发送到REST端点。 这就是我的data 。 请注意,数据类型与dataType中的值匹配。 另请注意,您可以使用$.post方法使用JQuery做一个更简单的post。
  • 成功回调的data参数需要首先解析为JSON(假设它回来了)因为它是PlainObject类型, PlainObject所述。 这就是$.parseJSON作用。 完成后,您可以根据需要导航JSON树以执行您需要执行的操作。 尽管如此,你可能无法逃脱。

希望有所帮助。

要将值传递给Web服务,Ajax具有data属性。

  

jQuery dataType参考 。

可能的dataType值: xmljsonscripthtml

试试这个:

 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); } }); 

您可以将json数据作为请求体传递,如下所示:

  var JSONObject= {"uname":uname, "password":password }; $.ajax({ url : env + 'rest/orders', type : 'POST', headers: { 'Content-Type':'application/json' }, data : JSON.stringify(JSONObject), dataType : "json", });