如何在yii2中将JSON返回给ajax [重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在yii2中将JSON返回给ajax [重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我想使用Yii2做一个Web项目,我想将JSON返回给AJAX。我使用过json_encode()Yii::$app->response->format = Response::FORMAT_JSON;,但它仍然不起作用。

这是我的行动:

public function actionAbout(){
  Yii::$app->response->format = Response::FORMAT_JSON;
  return json_encode(["test"=> 1]);
}

这是我的AJAX:

$.ajax({
  type: "POST",
  // dataType: 'json',
  data: {
    'user': 'A'
  },
  url: "?site/about",
  contentType: "application/json",
  success: function(data) {
    console.log(typeof(data));
    console.log(data)
  },
  error: function (data) {
    console.log(data);
  },
});

但它返回这个:

<!DOCTYPE html>....

仍然是一个HTML。怎么解决?

答案

而不是使用

return json_encode(["test"=> 1]);

你不应该像这样回应它

echo json_encode(["test"=> 1]);

加上如果你将Yii::$app->response->format设置为FORMAT_JSON然后你不需要将数组编码为JSON只返回数组。

return ['test'=>1];

以上是关于如何在yii2中将JSON返回给ajax [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在PHP中将MySQL记录集转换为JSON字符串[重复]

如何在javascript中将数组从php返回到ajax响应

Yii2网格视图使用ajax而不是Pjax进行过滤

JS中将ajax请求返回json数据动态生成表格显示在div中

RESTful 响应如何在 Yii2 中返回 JSON 而不是 XML?

RESTful 响应如何在 Yii2 中返回 JSON 而不是 XML?