嗨,我是JSON的新手。我的问题是如何通过ajax将JSON数据传递给宁静的Web服务?
请帮助我。
我尝试了以下代码,但我不确定
MY INDEX PAGE
<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>
答案 0 :(得分:9)
var JSONObject= {"uname":uname, "password":password };
var jsonData = JSON.parse( JSONObject );
var request = $.ajax({
url: "rest/orders",
type: "POST",
data: jsonData,
dataType: "json"
});
答案 1 :(得分:4)
代码问题:
.value
是属性而不是函数data
$.ajax
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);
}
});
});
});
答案 2 :(得分:1)
你想做这样的事情:
$('#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
应该几乎总是xml
或json
。如果你不提供任何东西,有时JQuery可以正确猜测。但它必须是真实的东西。data
中所拥有的。请注意,数据类型与dataType
中的值匹配。另请注意,您可以使用$.post
方法使用JQuery做一个更简单的帖子。data
参数需要首先解析为JSON(假设回来的是什么),因为它的类型为PlainObject
,如here所述。这就是$.parseJSON
的作用。完成后,您可以根据需要导航JSON树以执行您需要执行的操作。尽管如此,你可能无法逃脱。希望有所帮助。
答案 3 :(得分:1)
可能的dataType
值:xml
,json
,script
或html
试试这个:
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);
}
});
答案 4 :(得分:1)
要将值传递给Web服务,Ajax具有数据属性。
<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>
答案 5 :(得分:0)
您可以将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",
});