javascript - Codeigniter 4 Ajax在更新数据时返回303
问题描述
我正在尝试使用 ajax 将 post 方法中的数据发送到控制器中。但它不起作用。它返回 303 并在之前执行最后一个 ajax。请有人帮忙
POST http://domain/updateTiket/done [HTTP/1.1 303 See Other 501ms]
GET http://domain/requestTiket [HTTP/1.1 200 OK 253ms]
这是我的输入
<form id="tiket_e" method="POST" enctype="multipart/form-data">
<input type="hidden" id="<?= csrf_token(); ?>" value="<?= csrf_hash(); ?>" name="<?= csrf_token(); ?>">
<input type="hidden" id="code_edit" name="code_edit">
<div class="modal-body">
<div class="container-fluid">
<div class="form-group row">
<label class="col-sm-3 col-form-label">Card Number <small>(optional)</small></label>
<div class="col-sm-3">
<input name="card_rec_num_e" id="card_rec_num_e" class="form-control" type="text" required>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-info execute" value="escalate" id="btn_escalate_e"><i class="far fa-arrow-alt-circle-up"></i> Eskalasi</button>
<button class="btn btn-primary execute" value="done" id="btn_done_e"><i class="far fa-check-circle"></i> Selesai</button>
</div>
</form>
这是我的脚本
$("#btn_escalate_e, #btn_done_e").on('click',function(){
stat = $(this).val();
$.ajax({
type : "POST",
url : "<?php echo base_url('updateTiket')?>/"+stat,
headers: {'X-Requested-With': 'XMLHttpRequest'},
data : new FormData(document.getElementById("tiket_e")),
dataType : "JSON",
processData:false,
contentType:false,
cache:false,
async:false,
success: function(data){
window.alert(data.success);
}
});
return false;
});
这是我的 routes.php
$routes->match(['get', 'post'],'/updateTiket/(:segment)', 'Main\TicketController::update/$1');
这是我的控制器
public function update($stat)
{
$id = $this->request->getPost('code_edit');
$number = $this->request->getPost('card_rec_num_e');
$update = $this->TiketModel->save([
'id'=> $id,
'product_number'=> $number,
]);
if ($update) {
$res = array('success' => 'Done');
return $this->response->setJSON($res);
}
}
我只注意到一件事,它发生在我触发时data: new FormData(document.getElementById("tiket_e"))
。如果我改变data: {id: $('#id').val()},
它的工作原理,但我不能用它来上传文件..任何解决方案将不胜感激
解决方案
推荐阅读
- django - 如何从上一个错误/失败中恢复 Django 测试套件?
- mysql - 使用 mysqld_safe 运行 MySQL 后如何停止它?
- xml - DTD 语法 - 是否可以指定只能包含属性的元素?
- c# - 如何使同一网络上的 wpf 应用程序从一个 SQL Server 读取数据?
- xcode - 使用终端和 git 时出现 Xcode 错误
- c++ - For 循环集合 - 获取下一个元素迭代器
- r - 无法使用 install_github() 安装 IRkernel:未安装 Git?
- php - 使用 NodeJS 发送 PHP 文件
- python - 使用 SLSQP 的 SciPy 优化提供了不满足约束的解决方案
- vuejs2 - 使用 VueJS 重置 Select2 组件