Ajax response from controller file Magento 2

To pass Ajax response from the controller in Magento 2, You need to use Magento\Framework\Controller\Result\JsonFactory Object.

Many times your custom functionality requires you to use Ajax request on a page to display information without any page load and in this situation, you need to know about Ajax use in Magento 2 to achieve your requirement.

Magento\Framework\Controller\Result\JsonFactory is used for sending a response from a controller to an Ajax request.

Pass your response in the setData() method.


namespace Rbj\AjaxResponse\Controller\Index;

class AjaxResponse extends \Magento\Framework\App\Action\Action
    public function __construct(
        \Magento\Framework\App\Action\Context            $context,
        \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
    ) {
        $this->resultJsonFactory = $resultJsonFactory;

    public function execute()
        $resultJson = $this->resultJsonFactory->create();
        $htmlContent = 'Pass Html Content';
        $success = true;
        return $resultJson->setData([
            'html' => $htmlContent,
            'success' => $success

From the JS/Template file which you have called Ajax Call, You can get Response as html and success parameter from the above response.

You can manage your Response from the controller file.