Хорошо, наконец-то все заработало,
Во-первых, мне пришлось отредактировать мой route.php, хотя я там и объявил свое действие getPrices, оно конфликтовало с этой строкой
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
getPrices был объявлен после, и, следовательно, игнорируется, поэтому я просто объявил его до этой строки.
Затем обновил мой контроллер:
public function getPrices()
{
$this->autoRender = false;
$testdata = 'testvalue';
echo json_encode(['testdata'=>$testdata]);
}
и аякс на мой взгляд:
$.ajax({
url: '<?php echo $this->Html->url(array('controller' => 'pages', 'action' => 'getPrices')); ?>',
datatype: 'json',
cache: false,
data: {myVar:'Success'},
success: function (data) {
console.log('success');
var decodeddata = JSON.parse(data);
console.log(decodeddata.testdata);
},
error: function(){console.log('failed');}
});
И это работает.
Не сделал бы это без вклада людей, спасибо.