2017-11-15 17 views
0

Yii2を使ってWebプロジェクトを行いたいと思い、JSONをAJAXに戻したいと思います。 json_encode()Yii::$app->response->format = Response::FORMAT_JSON;を使用しましたが、それでも動作しません。yii2でJSONをajaxに返す方法

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。どのようにそれを解決するには?

+0

作品罰金を使用するときは、コントローラのレスポンス形式を指定する必要はありません。応答型を 'FORMAT_JSON'に設定するときは、自分で配列を' json_encode'してはいけません。完全な応答は何ですか? – jagsler

答えて

0

の代わりに、あなたはこの

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

のようにそれをエコーするべきではありませんプラスあなたはJSONに応答タイプを設定している場合、あなたがする必要はありません

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

を使用して配列をJSONにエンコードします。

-1

成功コールバックで応答を解析する必要があります。 はこのようにそれを使用します。

... 
success: function(data) { 
    var json = JSON.parse(data); 
    console.log(json); 
}, 

そして、あなたはすでに私のためjson_encode()

関連する問題