"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية حل الخطأ \"نقطتان الرمز المميز\" في طلبات JSONP باستخدام jQuery.ajax#get؟

كيفية حل الخطأ \"نقطتان الرمز المميز\" في طلبات JSONP باستخدام jQuery.ajax#get؟

تم النشر بتاريخ 2024-11-02
تصفح:486

How to Resolve \

نقطتان للرمز المميز غير متوقع: حل أخطاء JSONP في jQuery.ajax#get

عند مواجهة خطأ "نقطتان للرمز المميز غير متوقع" في jQuery.ajax #get، من المهم فهم طبيعة طلبات JSONP (JSON with Padding). يتضمن JSONP إرسال بيانات JSON مرة أخرى إلى استدعاء دالة JavaScript عامة من جانب العميل.

لدعم JSONP، يجب أن يقوم الخادم بتضمين "الحشوة" في الاستجابة. يتكون "الحشو" من اسم وظيفة رد الاتصال متبوعًا ببيانات JSON المحاطة بين قوسين:

jQuery111108398571682628244_1403193212453({"Name":"Tom","Description":"Hello it's me!"})

في هذا المثال، اسم وظيفة رد الاتصال هو jQuery111108398571682628244_1403193212453. يحدث الخطأ لأن JavaScript يوزع JSONP كجافا سكريبت، حيث يمثل {...} أيضًا الكتل.

لتصحيح هذا الخطأ، يحتاج الخادم إلى تضمين "الحشوة" في الاستجابة. بالإضافة إلى ذلك، ستتضمن jQuery عادةً معلمة سلسلة استعلام رد الاتصال مع اسم الوظيفة. لاستيعاب ذلك، يمكن لرمز الخادم استخدام عبارة شرطية للتحقق من معلمة رد الاتصال وإرسال الاستجابة وفقًا لذلك:

var callback = req.query.callback;
var data = JSON.stringify({
    Name : "Tom",
    Description : "Hello it's me!"
});

if (callback) {
    res.setHeader('Content-Type', 'text/javascript');
    res.end(callback   '('   data   ')');
} else {
    res.setHeader('Content-Type', 'application/json');
    res.end(data);
}

بدلاً من ذلك، يوفر ExpressJS طريقة res.jsonp() التي تعالج هذا الشرط بالفعل، مما يسهل إرجاع استجابات JSONP:

app.get( '/', function( req, res ) {
    console.log( 'req received' );

    res.jsonp({
        Name : "Tom",
        Description : "Hello it's me!"
    });
});
بيان الافراج أعيد طبع هذه المقالة على: 1729349598 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3