2012-10-03 25 views
15

जब मैं किसी jsonp अनुरोध (नीचे क्लाइंट कोड) से क्वेरी स्ट्रिंग को देखता हूं, तो 2 ऑब्जेक्ट्स, एक "कॉलबैक" स्ट्रिंग होती है जिसे आपको प्रतिक्रिया में उपयोग करने की आवश्यकता होती है (इसलिए क्लाइंट कोड सफलता हैंडलर को निर्देशित करता है) और एक "_" की कुंजी के साथ ... यह अंडरस्कोर क्या है? मुझे किसी भी दस्तावेज में इसका कोई संदर्भ नहीं मिल रहा है, ऐसा लगता है कि यह किसी प्रकार का है।एक jQuery jsonp AJAX अनुरोध की क्वेरी स्ट्रिंग में अंडरस्कोर क्या है?

हालांकि मैं इसे त्रुटि हैंडलर (या तो कॉलबैक के संयोजन में, या कॉलबैक स्ट्रिंग में अंडरस्कोर के बाद संख्या को प्रतिस्थापित करने के लिए) पर निर्देशित करने के लिए उपयोग किया जा सकता है, लेकिन ऐसा प्रतीत नहीं होता है ।

url = 'http://localhost:11767/Handlers/MyHandler.ashx'; 

...

  $.ajax({ 
       url: url, 
        dataType: "jsonp", 
        error: function (jqXHR, textStatus, errorThrown) { 
         //... 
        }, 
        success : function(d) { 
         //... 
        } 
      }); 

या

   $.getJSON(url + "?callback=?", function(d) { 
       }).success(function(d) { 
        //... 
       }).error(function(jqXHR, textStatus, errorThrown) { 
        //... 
       }).complete(function(d) { 
        //... 
       }); 

साइड नोट मामले में यह किसी को भी इस पढ़ने में मदद करता है: जैसा कि यह एक jsonp अनुरोध है, त्रुटि केवल यदि अपवाद हिट हो जाएगा ग्राहक पक्ष होता है, उदाहरण के लिए इस पर काबू पाने के लिए प्रतिक्रिया के स्वरूपण (यानी कॉलबैक का उपयोग न करने) के साथ एक टाइमआउट या समस्या है, मैं हमेशा हैंडलरों में अपवादों को लॉग और निगलता हूं, लेकिन मानक प्रतिक्रिया ऑब्जेक्ट देता हूं (जो सभी प्रतिक्रियाएं बनती हैं) जिसमें अपवाद की एक राज्य संपत्ति और एक संदेश संपत्ति है।

+0

मैं आपको कम से कम बता सकता हूं कि यह निश्चित रूप से त्रुटि हैंडलर के लिए नहीं है, क्योंकि JSONP अनुरोध एक स्क्रिप्ट टैग डालने का अनुरोध करता है और इसमें कोई त्रुटि हैंडलर नहीं है, इसलिए उपरोक्त कोड में आपकी त्रुटि फ़ंक्शन कभी भी आग नहीं होगी। सबसे अधिक संभावना है कि अंडरस्कोर कुछ ऐसा नहीं है जो XMLHttpRequest से प्रासंगिक है? – adeneo

+0

@adeneo - मैं एक ही निष्कर्ष पर आया (हालांकि नीचे आरई त्रुटि त्रुटि हैंडलर पर मेरा नोट पढ़ें)। अंडरस्कोर प्रासंगिक नहीं हो सकता है, मैंने सोचा कि यह क्या था, यह कहां से आया था और यदि यह किसी भी उपयोग का था? –

उत्तर

29

जिस नंबर का आप उल्लेख कर रहे हैं वह अनुरोध का दिनांक समय टिकट है। संख्या प्राप्त करें और अपने ब्राउज़र के जावास्क्रिप्ट कंसोल का उपयोग करें और टाइप करें: alert(new Date(/*insert number here*/))

आपको दिनांक/समय के साथ एक अलर्ट प्राप्त होगा।

संपादित करें:

यहाँ jQuery.ajax डॉक से एक टुकड़ा एक ajax अनुरोध के संबंध में:

कैश
डिफ़ॉल्ट: सच है, डेटाप्रकार 'स्क्रिप्ट' और 'jsonp'
हैं सेट के लिए झूठी झूठी बात के लिए, यह अनुरोधित पृष्ठों को ब्राउज़र द्वारा कैश किए जाने के लिए मजबूर करेगा। कैश को झूठी पर सेट करना URL पर एक क्वेरी स्ट्रिंग पैरामीटर, "_=[TIMESTAMP]", भी जोड़ता है।

+0

धन्यवाद। क्या आपको यह कहीं भी दस्तावेज मिला? –

+0

@MrShoubs मैंने दस्तावेज और लिंक का स्निपेट शामिल करने के लिए उत्तर अपडेट किया। –