Fix validasi gagal pada fungsi pindah penduduk - #1283
Open
pandigresik wants to merge 1 commit into
Open
pandigresik wants to merge 1 commit into
pandigresik wants to merge 1 commit into
Conversation
|
🔄 AI PR Review sedang antri di server...
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Memperbaiki error pada fungsi pindah penduduk di form
pindah.blade.phpyang gagal memvalidasi data di server. Request dikirim dengan headerContent-Type: application/jsonnamun body tetap di-serialize jQuery sebagai URL-encoded (string query), sehingga data dianggap tidak ada oleh validasi server. Solusinya body dikirim sebagai JSON string dan defaultcatatandiubah dariundefinedmenjadi string kosong.Changes made:
data: datamenjadidata: JSON.stringify(data)pada request AJAX$.ajax({...})di fungsisimpan().contentType: 'application/json'secara eksplisit pada request AJAX agar konsisten dengan headerContent-Type: application/jsonmilikheader_bearer_api_gabungan.catatandariundefinedmenjadi''agar field selalu terkirim (sebelumnyaundefineddibuang olehJSON.stringify).Reason for change:
Content-Type: application/jsonbertentangan dengan body yang di-serialize otomatis oleh jQuery menjadi format URL-encoded (ref_pindah=1&alamat_tujuan=...). Server (Laravel/Fractal) tidak dapat meng-parse URL-encoded yang di-label sebagai JSON sehingga input dianggap kosong dan validasi gagal.catatanyangundefinedhilang saat serialisasi JSON; mengubahnya menjadi string kosong memastikan field selalu tersedia jika diwajibkan oleh validasi.Impact of change:
✅ Validasi server berjalan: Data pindah diparsing sebagai JSON sehingga validasi di server tidak lagi menolak input kosong.
✅ Konsistensi Content-Type: Request AJAX kini konsisten antara header dan body yang dikirim.
✅ Perilaku sesuai konvensi kodebase: Pola
JSON.stringify(data)+contentType: 'application/json'sama seperti padamaster/artikel/create.blade.php.Related Issue
Steps to Reproduce
Before fix (problem):
penduduk/pindah).application/json.After fix (solution):
penduduk/pindah).Testing on related features:
kelurahan_tujuan✅Checklist
Technical Details
Technical Explanation
jQuery's
$.ajaxmemanggiljQuery.param()pada objekdatasehingga mengubahnya menjadi string URL-encoded meskipun header disetContent-Type: application/json. Laravel membaca body berdasarkan Content-Type; untukapplication/jsonia mencoba meng-parse body sebagai JSON. Karena body bukan JSON, input menjadi kosong dan validasi gagal.Configuration changes
Tidak ada perubahan konfigurasi.
Dependencies added
No new dependencies
Testing
Manual Testing
ref_pindah= 1 (pindah keluar desa) tersimpan dengan benarref_pindah= 2 (pindah keluar kecamatan) tersimpan dengan benarcatatankosong tidak menimbulkan error validasiAutomated Testing
Screenshots / Video
simplescreenrecorder-2026-09-08_11.12.20.mp4
Before:
Error validasi server "data tidak ditemukan" saat submit form pindah.
After:
Data pindah penduduk berhasil disimpan dan diarahkan kembali ke daftar penduduk.
Breaking Changes
None
Migration Guide
Not required
References
Additional notes: Pola perbaikan ini mengikuti konvensi yang sudah dipakai pada
resources/views/master/artikel/create.blade.phpyang juga mengirimJSON.stringify(data)ke API database gabungan.