我正在尝试将一些数据发布到Web服务并利用它返回的XML数据。我在jQuery的post()函数文档中看到了这个例子:
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
process(data);
},
"xml"
);
过程功能有什么作用?数据是什么样的?我是否将此处理过的数据分配给变量?试着想一想如何利用这篇文章中返回的值()。
答案 0 :(得分:5)
过程功能有什么作用?
没有这样的标准功能。由你来定义它,所以它会做你告诉它做的任何事情。
数据是什么样的?
这取决于您的Web服务返回的内容。如果是XML,则表示XML树。因此,例如,如果您提供服务,则返回以下xml:
<foo>
<bar>some value</bar>
</foo>
您可以像这样查询bar
节点的值:
function(data) {
var value = $('bar', data).text();
alert(value);
}
这是一个live demo,您可以在其中看到它。
答案 1 :(得分:4)
process(data);
可以是您想要使用data
调用 的任何函数。在大多数情况下,您需要在向用户显示之前将数据分配给元素或进行其他一些按摩。
除非它非常复杂,否则你也可以跳过调用一个单独的函数,例如:
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
$('#target').html(data); // assuming data is a html string
},
"xml"
);
将其处理成形:
$.post("test.php", { name: "John", time: "2pm" },
function(data) {
process(data)
},
"xml"
);
function process(data) {
$('#target').html(data); // assuming data is a html string
}
如果您的数据采用其他格式,那么您可以按下它来提取相关位或在process
或任何自定义函数中以某种方式对其进行转换。
例如,假设你得到一个JSON对象:
data = { "status": "success", "text": "Processed Succesfully" };
然后在你的回调中,你要检查状态和显示消息
function process(data) {
if(data.status == "success")
$('#target').html(data.text); // assuming data is a html string
else
alert("Error");
}