Ajax 在调用控制器时在 codeigniter 4 中不起作用
Ajax is not working in codeigniter 4 when call the controller
我只是想确保这个 ajax 正在调用我的控制器。但是当我点击按钮时没有任何反应。谢谢
我的看法:
<input type="text" id="phonenumber" name="phonenumber" class="form-control" placeholder="Phone number">
<button type="button" id="sendotp" name="sendotp" class="btn btn-primary btn-block">Sign Up</button>
我的 AJAX :
$(document).ready(function() {
$('#sendotp').click(function(e) {
e.preventDefault();
var phonenumber = $("input[name='phonenumber']").val();
$.ajax({
url: '<?php echo base_url();?>/register',
type:'post',
dataType:'json',
data: {
phonenumber:phonenumber
},
success: function(data) {
}
});
});
});
我的控制器:
public function register()
{
if($this->request->getMethod() == 'post'){
$phonenumber = $this->request->getPost('phonenumber');
echo $phonenumber;
}
return view('register/register');
}
我的路线:
$routes->match(['get', 'post'],'/register', 'Home::register');
在您的 javascript 中,您的成功事件是空的。所以没有发生任何事情是预期的行为。如果您要在控制器中返回视图,则必须在 javascript.
中对其进行处理
marco 回答足够了。
您还需要添加
headers: {'X-Requested-With': 'XMLHttpRequest'}
在你的 ajax 通话中 JQuery
$.ajax({
url: '<?php echo base_url();?>/register',
type:'post',
dataType:'json',
headers: {'X-Requested-With': 'XMLHttpRequest'},
data: {
phonenumber:phonenumber
},
success: function(data) {
}
});
并在您的控制器中检查其 ajax 在处理任何内容之前是否先调用。
if ($this->request->isAJAX())
{
}
请参考isAjax and refer to Ajax JQuery
这是在 Codeigniter4 中处理 ajax 调用的正确方法。
我遇到了同样的问题,我是这样解决的:
在 app/Config/Filter.php
中进行此更改:
public $globals = [
'before' => [
'csrf' => ['except' => ['your route or api']]
]
];
我只是想确保这个 ajax 正在调用我的控制器。但是当我点击按钮时没有任何反应。谢谢
我的看法:
<input type="text" id="phonenumber" name="phonenumber" class="form-control" placeholder="Phone number">
<button type="button" id="sendotp" name="sendotp" class="btn btn-primary btn-block">Sign Up</button>
我的 AJAX :
$(document).ready(function() {
$('#sendotp').click(function(e) {
e.preventDefault();
var phonenumber = $("input[name='phonenumber']").val();
$.ajax({
url: '<?php echo base_url();?>/register',
type:'post',
dataType:'json',
data: {
phonenumber:phonenumber
},
success: function(data) {
}
});
});
});
我的控制器:
public function register()
{
if($this->request->getMethod() == 'post'){
$phonenumber = $this->request->getPost('phonenumber');
echo $phonenumber;
}
return view('register/register');
}
我的路线:
$routes->match(['get', 'post'],'/register', 'Home::register');
在您的 javascript 中,您的成功事件是空的。所以没有发生任何事情是预期的行为。如果您要在控制器中返回视图,则必须在 javascript.
中对其进行处理marco 回答足够了。
您还需要添加
headers: {'X-Requested-With': 'XMLHttpRequest'}
在你的 ajax 通话中 JQuery
$.ajax({
url: '<?php echo base_url();?>/register',
type:'post',
dataType:'json',
headers: {'X-Requested-With': 'XMLHttpRequest'},
data: {
phonenumber:phonenumber
},
success: function(data) {
}
});
并在您的控制器中检查其 ajax 在处理任何内容之前是否先调用。
if ($this->request->isAJAX())
{
}
请参考isAjax and refer to Ajax JQuery
这是在 Codeigniter4 中处理 ajax 调用的正确方法。
我遇到了同样的问题,我是这样解决的:
在 app/Config/Filter.php
中进行此更改:
public $globals = [
'before' => [
'csrf' => ['except' => ['your route or api']]
]
];