$ .ajax()的成功函数传递了什么?

时间:2019-02-18 02:19:13

标签: javascript php jquery ajax

我已经读过this,并且对textstatussuccess: function(textstatus)所提供的内容有深刻的了解。显然,有一定数量的响应是根据我打电话给$.ajax()时发生的情况自动生成的,其中一个是success,对吧?

但是,我在success: function(data)部分仍然有疑问。我在dataType: 'json'中指定了$.ajax(),并且正如预期的那样,我必须在PHP文件中echo json_encode才能获得所需的结果。 但是,我很好奇,所以我尝试执行以下操作:

<?php
    header('Content-Type: application/json');
    echo ('a');
    echo json_encode(array('a' => 'b'));
    echo json_encode(array('c' => 'd'));
?>

然后,我尝试在success函数内部发出警报。它没有用,所以我猜测发生了错误。然后,我尝试放置一个error: function() { alert('hi'); },它确实提醒了“ hi”,表明它确实检测到错误。然后,我也尝试将echo('a')echo json_encode(array('a' => 'b'));一起使用。我确实希望它返回JSON编码的结果,就像我确实指定了我期望的dataType: 'json'一样,但是奇怪的是,它返回了一个错误。

我的问题和假设是:

  1. 简单地说,$.ajax()如何知道要取哪个结果?如果我在同一PHP文件中有两个dataType相同的项目怎么办?发生错误;最初,我认为它只是采用第一个项目而忽略第二个json_encode处理的结果。然后,我尝试了echo-两项带有不同dataType的项目。再次,我假设只采用适合我指定的dataType的那个而忽略另一个。但是,也发生了错误。
  2. 关于第一个问题,尽管可能不需要,因为我可以简单地将我想要的所有结果首先传递到数组中,但如何从一个传递两个不同(例如两个数组)结果$.ajax()打电话吗?还是那简单的不可能或非常优雅?

0 个答案:

没有答案