Plugin Formulir jQuery terus melaporkan kesalahan saat mengembalikan data JSON berdasarkan jQuery v1.4.2, plugin ini dapat dipulihkan dengan memodifikasi konten berikut;
Format data keluaran latar belakang asli seperti: {sitename:'Developer Network',siteurl:'www.AAA.net',level:10} perlu diubah menjadi {"sitename":"Developer Network","siteurl" :"www .AAA.net","level":10}
Artinya, nama harus diapit tanda kutip ganda karena jQuery versi 1.4.2 menambahkan penilaian reguler dalam metode parseJSON
if ( /^[ ],:{}s]*$/.test(data.replace(/\(?:[" \/bfnrt]|u[0-9a-fA-F]{ 4})/g , "@") .replace(/"[^" \nr]*"|benar|salah|null|-?d+(?:.d*)?(?:[eE][+-]? d+)?/g , "]") .replace(/(?:^|:|,)(?:s*[)+/g, "")) ) { // Coba gunakan parser JSON asli terlebih dahulu } kalau tidak { |
Apa yang perlu diubah di plugin jQuery Form
if (scr || s.textarea) { // lihat apakah pengguna menyematkan respons di area teks var ta = doc.getElementsByTagName('textarea')[0]; jika (ta) { xhr.responseText = ta.nilai; } lain jika (scr) { // akun untuk browser yang menginjeksi pra di sekitar respons json var pra = doc.getElementsByTagName('pra')[0]; jika (sebelum) { xhr.responseText = pra.innerHTML; } } } else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { xhr.responseXML = toXml(xhr.responseText); } |
Ubah menjadi:
if (scr || s.textarea) { // lihat apakah pengguna menyematkan respons di area teks var ta = doc.getElementsByTagName('textarea')[0]; jika (ta) { xhr.responseText = ta.nilai; } lain jika (scr) { // akun untuk browser yang menginjeksi pra di sekitar respons json var pra = doc.getElementsByTagName('pra')[0]; jika (sebelum) { xhr.responseText = pra.innerHTML; } else xhr.responseText=doc.body.innerHTML; } } else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { xhr.responseXML = toXml(xhr.responseText); } |
Alamat asli: http://www.vifo.net/Program/JavaScript/10090191.shtml