I am having issues with making an ajax request to my controller. Here is my code:
$.ajax({
type:"POST",
async: true,
cache: false,
url:"<?php echo \Cake\Routing\Router::url(array('controller'=>'Organizations','action'=>'add', 'ext' => 'json'));?>",
beforeSend: function(xhr) {
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
},
success: function(tab){
$( "#users acronymTable" ).append( "<tr>" +
"<td>" + acronym.val() + "</td>" +
"<td>" + definition.val() + "</td>" +
"</tr>" );
},
error: function (tab) {
alert('error' + tab.statusText);
}
});
MyController.php:
class OrganizationsController extends AppController
{
public function initialize(){
parent::initialize();
$this->loadComponent('RequestHandler');
}
public function add()
{
$this->layout = null;
if ($this->request->is('post')) {
// result can be anything coming from $this->data
$result = 'Hello Dolly!';
$this->set("result", $result);
}
}
}
The problem is that this does not return a string but returns an error page. If I view the error page, the error is:
Missing Template: Error: The view for OrganizationsController::add() was not found.
While it is true that there is no add.ctp file, it should not be trying to find a view to return, as I only want it to return a single string. Am I missing a setting somewhere?
thanks