How to receive a JSON object in the contoller?

Hello!

I want to send a JSON array from the _form to the controller.

My _form.php:


$.ajax({

    url: "/person/persons",

    data: JSON.stringify({idPerson: 1, idsGroups: [0, 1]}),

    success: function(res) {

        console.log(res);

    }

});

My PersonController.php:


public function actionAnalitosGrupos($idsGroup)

{

    return json_decode($idsGroup);

}

But my browser console shows:


error{"readyState":4,"responseText":"Bad Request (#400): Missing required parameters: idsGroups","status":400,"statusText":"Bad Request"}

Hi,

Short untested example:




$.ajax({

	url: 'example/test-action',

	type: 'POST',

	dataType: 'JSON',

	data: {

		postParameter1: 'testValue',

	},

	success: function (data) {

		alert("success");

	}

});






// in ExampleController

public function actionTestAction()

{

	$request = Yii::$app->request;

	$post    = $request->post();

	if ($request->isAjax && !empty($post['postParameter1'])) {

		Yii::$app->response->format = Response::FORMAT_JSON;

		return ['status' => 'success'];

	}

}



But you also find a lot of tutorials regarding this topic.

Just look for “yii2 ajax” or “yii2 pjax”. ;)

Best Regards