मैं AJAX को एक सुरक्षित सर्वर पर कॉल करना चाहता हूं जो स्वयं हस्ताक्षरित प्रमाणपत्र का उपयोग करता है। उस माहौल में जहां मेरा ऐप इस्तेमाल किया जा रहा है, यह ठीक है - मैं उपयोगकर्ताओं को सीए प्रमाण प्रदान कर सकता हूं और ऐप का उपयोग करने से पहले इसे इंस्टॉल कर सकता हूं। हालांकि, कभी-कभी, उपयोगकर्ता कर्ट इंस्टॉल करने से पहले ऐप पर जाने का प्रयास करता है। इन मामलों में, ऐप चुपचाप विफल रहता है - कम से कम फ़ायरफ़ॉक्स (समस्या का सबसे आम मामला) में, ऐसा लगता है कि कॉल चुपचाप मर जाता है, बिना त्रुटि हैंडलर को फायरिंग के। FWIW, यदि उपयोगकर्ता सर्वर पर वास्तविक पृष्ठ पर जाता है, तो उन्हें एक प्रमाणपत्र चेतावनी मिलती है।AJAX अविश्वसनीय (स्वयं हस्ताक्षरित) HTTPS को कॉल करता है चुपचाप
मैं एक कामकाज में हैक कर सकता हूं - कहें, एक दिल की धड़कन/पिंग अनुरोध करें और यह देखने के लिए एक वॉचडॉग टाइमर सेट करें कि क्या सर्वर समय पर जवाब देता है - लेकिन ऐसा लगता है, हैकी। मैं समय से पहले कनेक्शन का परीक्षण करने में सक्षम होना पसंद करूंगा। यह सुनिश्चित करने के लिए "सही" तरीका क्या है कि जिस सर्वर से आप बात करना चाहते हैं, उसके पास जावास्क्रिप्ट के भीतर से एक विश्वसनीय प्रमाण है? अगर इससे कोई फर्क पड़ता है, तो मैं JQuery के माध्यम से अपने AJAX अनुरोध कर रहा हूं।
अद्यतन: यहां एक शानदार पंचलाइन है। बाहर निकलता है, AJAX बिल्कुल समस्या नहीं थी। मुझे यकीन था कि यह स्वयं के हस्ताक्षरित चेतावनी से संबंधित लक्षणों के आधार पर था, लेकिन AJAX त्रुटि की कमी परेशान थी, esp। नीचे दिए गए उत्तर में दिए गए स्पेक को दिया गया है। एक अन्य टीम के सदस्य ने इसे दबाया: AJAX त्रुटि हैंडलर फायरिंग नहीं कर रहे थे क्योंकि JQuery को कभी भी लोड नहीं किया गया था! हम JQuery को हमारी साइट के किसी अन्य सबडोमेन से भी शामिल कर रहे थे, जिसे HTTPS पर भी होस्ट किया गया था - और उपयोगकर्ताओं ने हमारेService.example.com के लिए अपवाद जोड़े थे लेकिन js.example.com नहीं। जाहिर है यदि आप गैर-भरोसेमंद सुरक्षित कनेक्शन पर <script>
टैग इंगित करते हैं, कि चुपचाप विफल रहता है।
{/ headdesk}
क्या व्यवहार आप सर्वर से संपर्क करने में सक्षम नहीं होने से अलग दिख रहे हैं, जैसे आपका नेटवर्क कनेक्शन दूर हो जाता है? – martona