php + ajax|可接收兩個以上 ajax 的回傳嗎?

火爆浪子
  • 2.8k
$.ajax({
      type: "GET",
      url: "url.php",
      success: function(data){
      }

假設我用這樣打過去
如果印出 console.log(data) 可以印出我在 url.php 所 echo 的東西
但假設我需要接收兩個以上的回傳怎麼辦?能不能分開?

比如說我在 url.php 回傳

echo 'ok';

echo 'some data';

如果直接印出來會變成

oksome data

但我 ajax 這邊第一個要確認是否 ok,第二我要讓他帶數據回來而不只有 ok,我還想夾帶其他的數據
請問這怎麼實現?

回复
阅读 2k
5 个回答

后端返回json数据!

echo json_encode(['status' => 'ok', 'data' => '...']);
function({status,data}) {
   // status => ok
   // data => ...
}

返回json数组了解一下

长连接了解一下

夜雨
  • 1
新手上路,请多包涵

可以直接return json数据
return json_encode(['status'=>somestatus,'message'=>messagevalue]);
不过值得注意的是,在某些特殊情况下不能前端是无法解析后台phpjson_encode出来的json的(原因:json_code函数出来的json不是严格意义上的json数据,所以前端无法解析)
那么,可以写一个arrayToJson的全局函数
$array = ['a'=>1,'b'=>2,'c'=>3];
foreach($array as $k=>$v) $list[] = sprintf('"%s":"%s"', $k, $v);
echo '{' . join(',', $list) . '}';
这样就完成了一个json的拼接,对于严格模式来说也可以使用的json数据了

返回 json 即可解决问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏