0

我不会使用 Ajax 以 XML 格式从 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 做同样的事情呢?

4

1 回答 1

0

您可以在 AJAX 请求中指定响应为 XML:

dataType: "xml"

然后传递给您的success回调的参数将代表您可以直接操作的此 XML 的 DOM。顺便说一句,在您的服务器上指定 HTTP Content-Type 响应标头被认为是一种很好的做法。因此,例如,如果您打算从脚本中重新运行 XML,请确保您设置了正确的标头:

header('Content-Type: text/xml');

在这种情况下,您甚至不需要dataTypeAJAX 请求的参数。jQuery 会自动从 Content-Type 响应头中推导出它,并相应地解析传递给success回调的结果。

于 2013-01-26T20:46:23.483 回答