Javascript CakePHP可以';我不能让ajax开始工作

Javascript CakePHP可以';我不能让ajax开始工作,javascript,php,jquery,ajax,cakephp,Javascript,Php,Jquery,Ajax,Cakephp,我似乎无法获得AJAX帖子,也无法使用我的CAKEPHP站点。我正在尝试创建自动完成,但似乎无法使用ajax提交或获取数据。我可以使用标记自动完成工作,但无法显示表格中的数据。如果我没有使用正确的url或其他问题,我不确定会出什么问题。 这是我的search.ctp <?php use Cake\Routing\Router; ?> <?php echo $this->Form->input('id', ['type' => 'text']); ?&

我似乎无法获得AJAX帖子,也无法使用我的CAKEPHP站点。我正在尝试创建自动完成,但似乎无法使用ajax提交或获取数据。我可以使用标记自动完成工作,但无法显示表格中的数据。如果我没有使用正确的url或其他问题,我不确定会出什么问题。 这是我的search.ctp

<?php use Cake\Routing\Router; ?>

    <?php echo $this->Form->input('id', ['type' => 'text']); ?>

<script>
    $.ajax({
    type:       "POST",
    url:        "<?php echo Router::url(array('controller' => 'Invoices', 'action' => 'search')); ?>",
    success:    function(response) {
        $("#id").autocomplete({ source: response });
    }
});
</script>
这是我尝试键入ID时产生的错误。

这就是我希望通过使用search.ctp中的数组来生成的内容

这是我的桌子,我正试图从中获取ID。 有两种方法

  • $this->request->query('term')
  • $\u请求['term']

  • 它似乎根本就没有找到PHP文件,所以查询或表不是问题所在。也许您的AJAX请求的URL格式不正确。将预期的URL写入控制台,然后查看其是否正确。我猜也可能是您的蛋糕路由设置不正确。您应该检查“网络”选项卡以了解发送和接收的内容,同时检查错误日志。请求处理程序组件btw.应在
    initialize()
    方法中加载(通常在
    AppController
    中默认已加载)。
        public function search()
    {
        $this->loadComponent('RequestHandler');
        if ($this->request->is('ajax')) 
        {
            $name = $this->request->query['term'];
            $resultArr = $this->Invoices
        ->find()
        ->where(
            ['Invoices.id LIKE' => ($name . '%')],
            ['Invoices.id' => 'string']
        );
    
            $resultsArr = [];
            foreach ($resultArr as $result) 
            {
                 $resultsArr[] = (strval($result['id']));
            }
    
            $this->set('resultsArr', $resultsArr);
            // This line is what handles converting your array into json
            // To get this to work you must load the request handler
            $this->set('_serialize', ['resultsArr']);
    
    
        }
    }