【问题标题】:How to return a JSON to ajax in yii2 [duplicate]如何在yii2中将JSON返回到ajax [重复]
【发布时间】:2017-11-15 13:40:20
【问题描述】:

我想用 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。如何解决?

【问题讨论】:

  • 对我来说很好。尽管将响应类型设置为FORMAT_JSON 时,您不应该自己json_encode 数组。完整的回应是什么?

标签: php jquery json ajax yii


【解决方案1】:

而不是使用

return json_encode(["test"=&gt; 1]);

你不应该这样呼应吗

echo json_encode(["test"=&gt; 1]);

另外,如果您将Yii::$app-&gt;response-&gt;format 设置为FORMAT_JSON,那么您不需要将数组编码为JSON,只需返回数组即可。

return ['test'=>1];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-26
    • 1970-01-01
    • 2013-08-31
    • 2023-03-15
    • 2011-02-06
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    相关资源
    最近更新 更多