我已经读过this,并且对textstatus
中success: 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'
一样,但是奇怪的是,它返回了一个错误。
我的问题和假设是:
$.ajax()
如何知道要取哪个结果?如果我在同一PHP文件中有两个dataType
相同的项目怎么办?发生错误;最初,我认为它只是采用第一个项目而忽略第二个json_encode
处理的结果。然后,我尝试了echo
-两项带有不同dataType
的项目。再次,我假设只采用适合我指定的dataType
的那个而忽略另一个。但是,也发生了错误。$.ajax()
打电话吗?还是那简单的不可能或非常优雅?