ปลั๊กอิน jQuery Form ยังคงรายงานข้อผิดพลาดเมื่อส่งคืนข้อมูล JSON ตาม jQuery v1.4.2 สามารถกู้คืนได้โดยการแก้ไขเนื้อหาต่อไปนี้
รูปแบบข้อมูลเอาต์พุตพื้นหลังดั้งเดิมคือ: {sitename:'Developer Network',siteurl:'www.AAA.net',level:10} จำเป็นต้องเปลี่ยนเป็น {"sitename": "Developer Network", "siteurl" :"www .AAA.net","ระดับ":10}
นั่นคือชื่อจะต้องอยู่ในเครื่องหมายคำพูดคู่ เนื่องจาก jQuery เวอร์ชัน 1.4.2 เพิ่มการตัดสินปกติในวิธี parseJSON
ถ้า ( /^[ ],:{}s]*$/.test(data.replace(/\(?:[" \/bfnrt]|u[0-9a-fA-F]{ 4})/ก , "@") .replace(/"[^" \nr]*"|true|false|null|-?d+(?:.d*)?(?:[eE][+-]? d+)?/g , "]") .replace(/(?:^|:|,)(?:s*[)+/g, "")) ) { // ลองใช้ตัวแยกวิเคราะห์ JSON ดั้งเดิมก่อน } อื่น { |
สิ่งที่ต้องแก้ไขในปลั๊กอิน jQuery Form
ถ้า (scr || s.textarea) { // ดูว่าผู้ใช้ฝังการตอบสนองในพื้นที่ข้อความหรือไม่ var ta = doc.getElementsByTagName('textarea')[0]; ถ้า (ต้า) { xhr.responseText = ta.value; - อย่างอื่นถ้า (scr) { // บัญชีสำหรับเบราว์เซอร์ที่ฉีดการตอบสนองของ json ก่อน var pre = doc.getElementsByTagName('pre')[0]; ถ้า (ก่อน) { xhr.responseText = pre.innerHTML; - - - อื่นถ้า (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { xhr.responseXML = toXml(xhr.responseText); - |
แก้ไขเป็น:
ถ้า (scr || s.textarea) { // ดูว่าผู้ใช้ฝังการตอบสนองในพื้นที่ข้อความหรือไม่ var ta = doc.getElementsByTagName('textarea')[0]; ถ้า (ต้า) { xhr.responseText = ta.value; - อย่างอื่นถ้า (scr) { // บัญชีสำหรับเบราว์เซอร์ที่ฉีดการตอบสนองของ json ก่อน var pre = doc.getElementsByTagName('pre')[0]; ถ้า (ก่อน) { xhr.responseText = pre.innerHTML; } อื่น xhr.responseText=doc.body.innerHTML; - - อื่นถ้า (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { xhr.responseXML = toXml(xhr.responseText); - |
ที่อยู่เดิม: http://www.vifo.net/Program/JavaScript/10090191.shtml