2012-09-18 36 views
6

मैं अपने उत्पाद के लिए कुछ परिदृश्यों में कुछ वर्कफ़्लो को शॉर्ट-सर्किट में custom ajaxTransports for jQuery सेट करने का प्रयास कर रहा हूं। हालांकि, मुझे इन ट्रांसपोर्टों को सम्मानित करने में शून्य सफलता मिली है (जबकि मेरे पास custom ajaxPrefilters काम कर रहे हैं)।कस्टम AJAXTransport फ़ंक्शन निर्दिष्ट डेटा के बिना टाइप नहीं है (सभी पर!)

  • 1.5.2
  • 1.6.4
  • 1.7.2
  • 1.8.0

कई के साथ परीक्षण किया गया:

jQuery के कई संस्करण के साथ परीक्षण किया गया ब्राउज़र्स:

  • Firefox 15
  • क्रोम 21
  • iOS 5 WebViews

...

उनमें से कोई भी काम किया।

JsFiddle परीक्षण का मामला:http://jsfiddle.net/PVYut/

...

मैं एक dataType उसके दायरे को कम करने के लिए नीचे जोड़ने, तो यह ठीक काम करता है।

JsFiddle परीक्षण का मामला:http://jsfiddle.net/PVYut/1/

...

मैं बस कुछ सब गलत कर रहा हूं? मुझे ऐसा करने में खुशी होगी, जब तक मैं यह काम कर सकूं! -_-

उत्तर

4
$.ajaxTransport("+*", function(options, originalOptions, jqXHR, headers, completeCallback ) { 
    console.log("Executing ajaxTransport"); 
    return { 
     send: function(headers, completeCallback) { 
      completeCallback(404, "error", {}); 
     }, 
     abort: function() { 
      /* abort code */ 
     } 
    } 
}); 

$.ajax("?jqTrans=" + (+(new Date()))) 
    .done(function() { 
     console.log("ERROR: Should not have been successful!"); 
    }) 
    .fail(function() { 
     console.log("SUCCESS: Should have failed."); 
    }); 

यहाँ jsFiddle

+1

अच्छा, धन्यवाद है! JQuery के लिए खराब दस्तावेज का एक और मामला। = ( –

+2

आम तौर पर, ट्रांसपोर्ट का उपयोग फ़ॉलबैक के रूप में किया जाता है। आपको इस तरह के परिवहन आदेश पर भरोसा नहीं करना चाहिए (इसलिए इसे दस्तावेज क्यों नहीं किया जाता है)। एक प्रीफिल्टर बनाएं, किसी अन्य डेटा पर रीडायरेक्ट करें टाइप करें और इस डेटा को कैप्चर करें अपने कस्टम ट्रांसपोर्ट के साथ टाइप करने का तरीका है पार्टी के लिए देर हो जाने के लिए खेद है। –

+0

@ जुलिएनऑबॉर्ग मैंने जो कुछ भी वर्णित किया है, वही करने पर विचार किया लेकिन वास्तविक 'डेटा टाइप' को अस्पष्ट करने का विचार मुझे बंद कर दिया। सबसे अच्छा, आप वास्तविक 'डेटा टाइप' मान को एक नई संपत्ति में स्टोर कर सकते हैं prefilter में अनुरोध के लिए 'विकल्प' /' सेटिंग्स 'ऑब्जेक्ट और उसके बाद उसे परिवहन में' डेटा टाइप 'प्रॉपर्टी में पुनर्स्थापित करें। ऐसा करने योग्य है लेकिन यह इसे हैकर महसूस करता है। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^