How to return data to an ajax succes callback I want to call an action via an ajax call with the following code:

$.ajax({
    url: Craft.getActionUrl(_this.options.updateRestockAction),
    method: 'POST',
    headers: headers,
    data: data,
    success: function(data) {
        console.log(data);
    },
    error: function(jqXHR, textStatus) {
        console.log('error');
    },
    complete: function(jqXHR, textStatus) {
        console.log('complete');
    }
});


My action is being called successfully. However, I can't find out how to return data to the success callback. Any idea how to do this? I'm using Craft 3.

Thanks
As Robin mentions, your controller needs to return an object of type Response, and in your case you probably want to return it with the format set to json. There's a helper method in Craft's Controller class, asJson, which is handy for this. Example:

public function actionMyControllerAction()
{
    $result = ['my' =&gt; 'data'];
    return $this-&gt;asJson($result);
}


This should give you back an object for data with a key of my with value data.