我不会使用XML格式的Ajax从textarea发送数据,并以XML格式接收数据。我也不知道如何在服务器端(PHP)捕获数据以及如何将数据发送到客户端。
客户端代码:
' STR'是一个来自textarea的值的变量
function sendValue(str){
// Fire off AJAX request.
$.ajax(
{
// Define AJAX properties.
url: "transliterate.php",
type: "post",
data: { sendValue: str },
dataType: "json",
// Define the success method.
success: function(data){
data.returnValue = data.returnValue.replace(/\n/g,'<br/>');
$('#result_box').html(data.returnValue);
if(data.returnValue.length <= 50) {
$('#result_box').addClass('short_text');
}else{
$('#result_box').removeClass('short_text');
}
},
// Define the error method.
error: function( objAJAXRequest, strError ){
$( "#response" ).text(
"Error! Type: " +
strError
);
}
});
};
这是服务器端代码:
<?php
//Get Post Variables. The name is the same as
//what was in the object that was sent in the jQuery
if (isset($_POST['sendValue'])){
$value = $_POST['sendValue'];
}else{
$value = "";
}
//Because we want to use json, we have to place things in an array and encode it for json.
//This will give us a nice javascript object on the front side.
echo json_encode(array("returnValue"=>$value));
?>
当数据类型为json时,这适用于我,但是如何使用XML执行相同的操作?
答案 0 :(得分:0)
您可以在AJAX请求中指定响应为XML:
dataType: "xml"
然后传递给success
回调的参数将代表您可以直接操作的XML的DOM。顺便说一下,在服务器上指定HTTP Content-Type响应头是一种很好的做法。因此,例如,如果您打算从脚本中重新运行XML,请确保已设置正确的标头:
header('Content-Type: text/xml');
在这种情况下,您甚至不需要AJAX请求的dataType
参数。 jQuery将自动从Content-Type响应头中推导出它,并相应地解析传递给success
回调的结果。