"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > JQuery.ajax#get का उपयोग करके JSONP अनुरोधों में \"अप्रत्याशित टोकन कोलन\" त्रुटि का समाधान कैसे करें?

JQuery.ajax#get का उपयोग करके JSONP अनुरोधों में \"अप्रत्याशित टोकन कोलन\" त्रुटि का समाधान कैसे करें?

2024-11-02 को प्रकाशित
ब्राउज़ करें:386

How to Resolve \

अप्रत्याशित टोकन कोलन: jQuery.ajax#get में JSONP त्रुटियों को हल करना

जब jQuery.ajax में "अप्रत्याशित टोकन कोलन" त्रुटि का सामना करना पड़ता है #प्राप्त करें, JSONP (पैडिंग के साथ JSON) अनुरोधों की प्रकृति को समझना महत्वपूर्ण है। JSONP में JSON डेटा को क्लाइंट साइड पर वैश्विक JavaScript फ़ंक्शन कॉल पर वापस भेजना शामिल है।

JSONP का समर्थन करने के लिए, सर्वर को प्रतिक्रिया में "पैडिंग" शामिल करना होगा। "पैडिंग" में एक कॉलबैक फ़ंक्शन नाम होता है जिसके बाद कोष्ठक में संलग्न JSON डेटा होता है:

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

इस उदाहरण में, कॉलबैक फ़ंक्शन का नाम jQuery111108398571682628244_1403193212453 है। त्रुटि इसलिए होती है क्योंकि जावास्क्रिप्ट 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 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3