Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mengendalikan Ralat Sisi Pelayan dan Pengesahan Borang dalam jqGrid?

Bagaimana untuk Mengendalikan Ralat Sisi Pelayan dan Pengesahan Borang dalam jqGrid?

Linda Hamilton
Linda Hamiltonasal
2024-11-17 04:38:03318semak imbas

How to Handle Server-Side Errors and Form Validation in jqGrid?

Mengendalikan Ralat Sisi Pelayan dan Pengesahan Borang dalam jqGrid

Masalah:

Anda perlu menghuraikan ralat daripada JSON respons dan paparkannya dalam kotak dialog dalam jqGrid anda. Sebaik-baiknya, anda mahu grid menyemak "STATUS: 'ERROR'" dan menunjukkan semua mesej ralat dengan sewajarnya.

Jawapan:

Adalah penting untuk mengikuti garis panduan protokol HTTP apabila berkomunikasi antara pelayan dan klien. Respons standard yang berjaya termasuk yang berikut:

HTTP/1.1 200 OK
...
Content-Type: application/json
...

{"page":"1",....}

Sebaliknya, jika URL tidak wujud, respons pelayan akan bermula dengan:

HTTP/1.1 404 Not Found

jqGrid bergantung pada kod status HTTP untuk menentukan cara mengendalikan respons pelayan. Sebagai contoh, kod status 404 menunjukkan bahawa grid tidak akan cuba mentafsir data JSON.

Kod Demo:

Untuk menunjukkan konsep ini:

$("#list").jqGrid({
    url: 'Unknown.json', // file with this name doesn't exist
    datatype: 'json',
    // ... other relevant parameters
    loadComplete: function () {
        alert("OK");
    },
    loadError: function (jqXHR, textStatus, errorThrown) {
        alert('HTTP status code: ' + jqXHR.status + '\n' +
              'textStatus: ' + textStatus + '\n' +
              'errorThrown: ' + errorThrown);
        alert('HTTP message body (jqXHR.responseText): ' + '\n' + jqXHR.responseText);
    }
});

Kod ini akan memaparkan makluman berikut:

  • Kod status HTTP: 404
  • textStatus: Not Found
  • error Thrown: error
  • Isi mesej HTTP (jqXHR.responseText): kosong

Ralat Tersuai Pengendalian:

Jika anda mahu mengendalikan respons ralat secara berbeza, anda boleh menggunakan kod status HTTP ralat. Di bawah ialah versi lanjutan pelaksanaan loadError:

loadComplete: function () {
    // remove error div if it exists
    $('#' + this.id + '_err').remove();
},
loadError: function (jqXHR, textStatus, errorThrown) {
    // remove error div if it exists
    $('#' + this.id + '_err').remove();

    // insert div with the error description before the grid
    $(this).closest('div.ui-jqgrid').before(
        '<div>

Fungsi ini mengalih keluar sebarang div ralat sedia ada, kemudian memasukkan div baharu sebelum grid untuk memaparkan mesej ralat. Fungsi decodeErrorMessage boleh disesuaikan untuk mengendalikan mesej ralat dalam format pilihan anda.

Menggunakan displayErrorMessage:

JqGrid percuma menyediakan kaedah displayErrorMessage terbina dalam untuk memaparkan mesej ralat dalam div ralat di atas grid. Sebelum menggunakan pengendalian ralat tersuai, adalah disyorkan untuk menguji kelakuan lalai untuk memastikan ia memenuhi keperluan anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat Sisi Pelayan dan Pengesahan Borang dalam jqGrid?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn