يستمر المكون الإضافي jQuery Form في الإبلاغ عن خطأ عند إرجاع بيانات JSON استنادًا إلى jQuery v1.4.2؛ ويمكن استعادته عن طريق تعديل المحتوى التالي؛
تنسيق بيانات إخراج الخلفية الأصلي مثل: {sitename:'Developer Network',siteurl:'www.AAA.net',level:10} يحتاج إلى التغيير إلى {"sitename": "Developer Network"، "siteurl" :"www .AAA.net"،"المستوى":10}
أي أن الاسم يجب أن يكون محاطًا بعلامات اقتباس مزدوجة؛ لأن الإصدار 1.4.2 من jQuery أضاف حكمًا عاديًا في طريقة 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; } آخر إذا (سكر) { // حساب للمتصفحات التي تحقن استجابة json مسبقًا var pre = doc.getElementsByTagName('pre')[0]; إذا (قبل) { xhr.responseText = pre.innerHTML; } } } else if (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; } آخر إذا (سكر) { // حساب للمتصفحات التي تحقن استجابة json مسبقًا var pre = doc.getElementsByTagName('pre')[0]; إذا (قبل) { xhr.responseText = pre.innerHTML; } else xhr.responseText=doc.body.innerHTML; } } else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) { xhr.responseXML = toXml(xhr.responseText); } |
العنوان الأصلي: http://www.vifo.net/Program/JavaScript/10090191.shtml