如何使用$ .ajax调用成功函数

时间:2012-01-23 22:12:26

标签: javascript php jquery ajax

我不明白成功函数在jquery的$ .ajax调用中是如何工作的。

例如

$.ajax({
    type: "POST",
    url: "ajax.php",
    data: "function=1",
    success: function(data,response,jqxhr){
         useReturnData(data /* ??? not sure how to use the data var */ );
    }
};

ajax.php:

 <?php
      if ($_REQUEST['function'] == '1'){
            $string = "this is the data i want to return and use";
      }
 ?>

如何在成功函数中使用该数据?似乎无法解释数据参数是什么,他们似乎只是模糊地使用它。

另一方面的问题,是数据:“function = 1”与数据相关,作为成功函数的参数?

4 个答案:

答案 0 :(得分:2)

data参数的内容取决于响应的类型。如果Content-Typeapplication/json,则将其解析为JSON。如果是text/html或类似内容,则内容为HTML。在您的情况下,看起来您正在返回文本。如果您使用Content-Type标题text/plain或类似内容,那么data应该只是一个字符串。

要回答第二个问题,Ajax请求的data属性是不同的;它指定发送的请求数据。换句话说,如果您有GET请求,则为查询字符串;如果是POST请求,则为“表单”变量。

答案 1 :(得分:2)

data变量包含php文件的输出,所以如果在你的php文件中你做了:

echo "<p>success</p>";

data将包含<p>success</p>

在您的示例中,您可以将php文件更改为:

<?php
      if ($_REQUEST['function'] == '1'){
            $string = "this is the data i want to return and use";
      }

      // other stuff...

      echo $string;
 ?>

答案 2 :(得分:1)

data是服务器端脚本返回的内容,因此在这种情况下它将是

this is the data i want to return and use

满足if()条件。

没有人真正说出data包含的内容,因为它可以包含各种不同的内容,尽管它总是一个字符串。有时它是HTML,有时它是JSON,有时只是返回消息。

在您的情况下,data只是一个字符串,可让您在服务器端脚本中回显字符串

答案 3 :(得分:0)

最简单的方法是将数据加载到某个占位符元素(div?) E.G。

$.ajax({
    type: "POST",
    url: "ajax.php",
    data: "function=1",
    success: function(data,response,jqxhr){
         $('div.selector').load(data);
    }
};