Postingan lainnya
Kelas Premium!
Belajar Javascript untuk website
Gunakan kupon "mulaijs" untuk diskon 75 ribu!
Isi form otomatis
Saya sedang berlajar codeigniter 4 membuat form dan form tersebut ketika di klik kode pada list (select/option) maka keluar namanya setelah diconsole errornya seperti berikut:
GET http://localhost:8080/api/home/110 404 (Not Found) VM148:1 Uncaught (in promise) SyntaxError: Unexpected end of JSON input
untuk source tampilan
<div class="form-group col-3"> <label for="akun1">Nama Akuntansi</label> <select class="form-control" name="akun1" id="akun1"> <option value="" selected disabled>-- Silahkan pilih --</option> <?php foreach ($kode as $kade) : ?> <option value="<?= $kade['kode']; ?>" id="akun1"><?= $kade['kode']; ?></option> <?php endforeach ?> </select> <div id=" validationServer03Feedback" class="invalid-feedback"> <?= validation_show_error('akun1'); ?> </div> </div>
<div class="form-group col-3">
<label for="deb1">Debet</label>
<input type="text" class="form-control <?= (validation_show_error('deb1')) ? 'is-invalid' : ''; ?>" id="deb1" name="deb1" placeholder="Isi jumlah debet" value="">
<div id="validationServer03Feedback" class="invalid-feedback">
<?= validation_show_error('deb1'); ?>
</div>
</div>
controller API nya: <?php namespace App\Controllers\Api; use App\Models\KodeModel; use CodeIgniter\API\ResponseTrait; use CodeIgniter\RESTful\ResourceController; class Home extends ResourceController { use ResponseTrait; public function show($kd = null) { $model = new KodeModel(); $data = $model->find($kd);
return $this->respond($data);
}
}
dan javascritnya <script> $('#akun1').on('change', (event) => { getCau(event.target.value).then(kode => { $('#deb1').val(kode.nama); }); });
async function getCau(kd) {
let response = await fetch('/api/home/' + kd)
let data = await response.json();
return data;
}
</script>
Mohon pencerahannya kepada agan2 yg ada disini, Terimaksih sebelumnya
Tanggapan
terlalu bastrak, bisa lihat gambarnya?
1 Jawaban:
Masalah yang Anda alami muncul karena permintaan AJAX ke URL http://localhost:8080/api/home/110
menghasilkan status 404 (Not Found), yang menyebabkan JavaScript mencoba untuk mem-parsing respons yang kosong sebagai JSON, dan ini menghasilkan kesalahan "Uncaught SyntaxError: Unexpected end of JSON input".
Untuk memperbaiki masalah ini, Anda perlu memastikan bahwa URL yang digunakan dalam permintaan AJAX adalah benar. Berikut beberapa langkah yang bisa Anda lakukan:
-
Periksa URL dalam Permintaan AJAX: Pastikan bahwa URL
'/api/home/' + kd
yang digunakan dalam permintaan AJAX benar dan sesuai dengan rute yang Anda definisikan dalam controller CodeIgniter Anda. Pastikan juga bahwakd
adalah parameter yang valid. -
Periksa Rute di Controller CodeIgniter: Pastikan bahwa Anda memiliki rute yang sesuai dalam controller CodeIgniter Anda yang dapat menangani permintaan dengan URL tersebut. Rute ini harus cocok dengan parameter yang diharapkan.
-
Periksa Controller dan Metodenya: Pastikan bahwa Anda memiliki controller
Home
dengan metodeshow
yang sesuai dengan rute yang Anda tentukan. Pastikan juga bahwa controller ini dapat mengambil data yang diperlukan. -
Periksa Data yang Dikirimkan oleh Controller: Pastikan bahwa controller Anda mengirimkan data sebagai respons yang dapat diparsing sebagai JSON. Anda dapat menggunakan
$this->respond($data, 200, 'application/json')
dalam controller Anda untuk memastikan respons adalah JSON. -
Periksa Konfigurasi CodeIgniter: Pastikan konfigurasi CodeIgniter Anda, khususnya pengaturan terkait URL dan rute, telah diatur dengan benar.
Dengan memeriksa langkah-langkah ini, Anda dapat mengidentifikasi dan memperbaiki penyebab kesalahan "Unexpected end of JSON input" dalam permintaan AJAX Anda.