为了账号安全,请及时绑定邮箱和手机立即绑定

如何在编解码器 4 中使用 ajax

如何在编解码器 4 中使用 ajax

PHP
天涯尽头无女友 2022-09-12 13:12:48
我正在使用代码签名-4版本,并尝试在导航栏中自动搜索。我正在尝试使用ajax将后方法中的数据发送到控制器中。但它不起作用。而共签名器 4 没有描述 ajax 的细节。下面我的代码示例输入框是 -<input class="form-control mr-sm-2" type="search" placeholder="<?= lang('nav.search'); ?>" aria-label="Search" name='s' id="seachBox">阿贾克斯代码是 -     $.ajax({         url:<?= base_url('search'); ?>,       headers:{'X-Requested-With':'XMLHttpRequest'},       data:{query:query},       success:function(data){             alert(data);       }      });而我的控制器是 -<?phpclass Search extends BaseController{    public function __construct()    {         helper(['common_helper','aws_helper']);    }    public function index(){        echo 'string';    }}?>路线是 -<?php $routes->get('/search', 'Search::index');?>
查看完整描述

1 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

下面是 ajax 的示例代码。(确保您已为搜索 URL 定义了路由/控制器方法)


$.ajax({  

    url:<?php echo base_url('search'); ?>,

    type: 'post',

    dataType:'json',

    data:{query:query},

    success:function(data){

        alert(data);

    }  

});

CI4 代码获取请求数据


if ($this->request->isAJAX()) {

    $query = service('request')->getPost('query');

    var_dump($this->request->getPost('query'));

}

此外,如果您没有成功重新加载页面,请确保更新每个请求。此外,您需要在方法中返回令牌。因此,在这种情况下,您的方法将如下所示 -csrf tokencsrf


if ($this->request->isAJAX()) {

        $query = service('request')->getPost('query');

        //var_dump($this->request->getPost('query'));

        return json_encode(['success'=> 'success', 'csrf' => csrf_hash(), 'query ' => $query ]);

    }

因此,在这种情况下,您的ajax代码将如下所示 -


$.ajax({  

        url:<?php echo base_url('search'); ?>,

        type: 'post',

        dataType:'json',

        data:{query:query},

        success:function(data){

           var result = JSON.parse(data);

            $("input[name='csrf_test_name']").val(result['csrf']);

        }  

    });



查看完整回答
反对 回复 2022-09-12
  • 1 回答
  • 0 关注
  • 53 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信