2009-10-26 11 views
21

इस बारे में खोज इंजन में कीवर्ड के किसी भी संयोजन को खोजना वाकई मुश्किल है क्योंकि यह सबसे लोकप्रिय डेवलपर द्वारा उपयोग किया जाता है, यह अजाक्स द्वारा एक कस्टम स्वत: पूर्ण होना चाहता था।ब्राउज़र स्वत: पूर्ण/सहेजे गए फॉर्म AJAX अनुरोध में काम नहीं करते

एजेक्स द्वारा डीबी से परिणाम प्राप्त करने के लिए कस्टम ऑटोकंपलेट के बारे में अधिकतर डेवलपर खोज या सुरक्षा कारणों से ब्राउज़र स्वत: पूर्ण अक्षम करने के तरीके के बारे में या वे एक अन्य स्वत: पूर्ण विस्तारक का उपयोग करना चाहते हैं।

हालांकि मैं स्वतः पूर्ण के बारे में बात नहीं कर रहा हूं। मुझे सरल सामान्य ब्राउज़र स्वत: पूर्ण या ब्राउजर सेव किया गया फॉर्म या तो आईई या एफएफ के बारे में पता चलता है जो टेक्स्टबॉक्स में टेक्स्ट भरने के दौरान हालिया पसंद को छोड़ने जैसा कार्य करेगा।

लॉगिन फॉर्म में उपयोगकर्ता नाम और पासवर्ड जैसे फॉर्म को सरल और सामान्य भरना। सबमिट किए जाने के बाद (फॉर्म डेटा पोस्ट) ब्राउज़र स्वत: पूर्ण या एफएफ में ईवेंट सहेज लेगा पासवर्ड के साथ सहेजने के लिए कहेंगे।

अब, AJAX के माध्यम से सबमिट किए गए लॉगिन के बारे में सोचें। फ़ॉर्म डेटा स्वचालित रूप से IE या FF द्वारा सहेजा नहीं जाता है क्योंकि फ़ॉर्म पोस्ट विधि द्वारा नहीं भेजा गया है। मुझे यकीन है कि यह AJAX बनाम पोस्ट विधि के कारण है।

इस तरह से डॉटनेटनेट जैसे सीएमएस और विकास प्रयोजन के लिए 5 उपयोगकर्ता लॉगिन के लिए उपयोगकर्ता नाम और पासवर्ड टाइप करना मेरे लिए वास्तव में कठिन है, तो मैं उपयोगकर्ता को बिना किसी कस्टम या विस्तारक के ब्राउज़र में अपना स्वयं का फॉर्म डेटा सहेजना चाहता हूं। एक और उदाहरण के अनुसार, उपयोगकर्ता वेब साइट या डोमेन पर किसी भी ईमेल फॉर्म को भरने के लिए एक ही ईमेल देख और उपयोग कर सकते हैं।

इसके साथ कैसे काम करें? क्या आपके पास सुझाव है कि खोजशब्द खोज करने के लिए अधिक उपयुक्त हैं?

CallMeLaNN

+0

इम अभी भी समाधान के लिए खोज ... – CallMeLaNN

+0

मैं लगभग समान प्रश्न यहाँ कहा है: http://stackoverflow.com/questions/9201858/how-to-store-to-browser-auto- पूरा-स्वत: भरण-जब-का उपयोग कर-ajax-कॉल-बजाय-की। मैं एक सामान्य समाधान चाहता हूं, ऐसा नहीं जो सिर्फ एफएफ में काम करता है। – JoeCool

+0

क्या आपको उत्तर मिल गया है? मैं एक ही समस्या के साथ हूँ। चीयर्स – Mango

उत्तर

4

मुझे एक ही समस्या है। मैं अपने AJAX पोस्ट करने से पहले जावास्क्रिप्ट के माध्यम से सबमिट एक छुपा आईफ्रेम जोड़कर फ़ायरफ़ॉक्स के लिए इसे हल करने में सक्षम था। मुझे अभी भी कुछ भी नहीं मिला है जो क्रोम/आईई में काम करता है।

+0

क्रोम 46 ने अंततः अपने गलत व्यवहार को ठीक किया। देखें https://stackoverflow.com/a/33113374/810109 – mkurz

2

मुझे एक ही समस्या का सामना करना पड़ा है और थोड़ा सा खोजा गया है। मुझे लगता है कि यदि आपके पास लॉगिन पृष्ठ है तो इसे हल करने का सबसे सुविधाजनक तरीका नीचे दिया गया समाधान है। अगर हम AJAX के माध्यम से सबमिट किए गए लॉगिन पर विचार करते हैं, तो कोई भी ब्राउज़र उपयोगकर्ता नाम और पासवर्ड फ़ील्ड के लिए ऑटोकॉम्पलेट सुविधा को याद या ऑफ़र नहीं करता है इसके अतिरिक्त क्रेडेंशियल्स को याद रखने के लिए कहता है। लेकिन यदि आप जावास्क्रिप्ट सबमिट सुविधा का उपयोग करते हैं (शायद यह ब्राउज़र के पुराने संस्करणों के साथ संगत नहीं है), तो सभी ब्राउज़र IE को छोड़कर उपयोगकर्ता नाम और पासवर्ड सहेजने की पेशकश करते हैं। लेकिन मुझे आईई के लिए उपयोगकर्ता नाम और पासवर्ड बचाने के लिए एक और जावास्क्रिप्ट मुश्किल लगता है।

मेरे लॉगिन पेज में, मैंने उपयोगकर्ता नाम और पासवर्ड संभाला है और उन्हें AJAX अनुरोध द्वारा सर्वरसाइड पर भेज दिया है और यदि लॉगिन सफल हो गया है, तो मैंने फॉर्म को नीचे दिए गए तरीके से सबमिट किया है अन्यथा इसे एक अलर्ट बॉक्स दिखाया गया था उपयोगकर्ता जो लॉगिन विफल हुआ था।

नीचे दिए गए लिंक की जाँच करें करें:

[संपादित करें]: लिंक

पेज में इस मुद्दे जुड़े हुए के बारे में एक निश्चित पेज नहीं है टूट गया है, मैं तुम्हें एक और लिंक क्योंकि नहीं दे सकता मेरी प्रतिष्ठा का। कृपया पृष्ठ में नीचे दिए गए उद्धरण की खोज करें:

निश्चित पृष्ठ पर देखें।

बेशक, यह फ़ॉर्म फिट नहीं है अगर आपके पास सबमिट करने के कारण डिफ़ॉल्ट पृष्ठ में लॉगिन अनुभाग है। यह पृष्ठ झटके का कारण बनता है। मुझे आश्चर्य है कि किसी के बारे में कोई विचार है?

1

यहां कुछ अनजान जेएस jQuery कोड है जो अजेक्स ($। पोस्ट विधि) के माध्यम से एक असली बैकएंड स्क्रिप्ट और एक आईफ्रेम के माध्यम से एक डमी स्क्रिप्ट के लिए एक फॉर्म सबमिट करेगा, इसलिए ब्राउज़र बाद में सबमिट किए गए डेटा को सहेज लेगा स्वतः पूर्ण।

यह क्रोम के तहत बहुत अच्छा काम कर रहा है। कोई प्रतिक्रिया स्वागत से अधिक है!

var formframesindex = 0; 
function onSubmitAjax(evt){ 
    var $form = $(this); 
    var framesubmitting = $form.hasClass('framesubmitting'); 
    var action = $form.attr('action'); 
    var original_action = action; 

    if(!framesubmitting){ 
     $.post(action,$form.serialize()+"&ajax=1", function(responseText,message,request){ 
      formResponseHandler(responseText); 
     }, "json"); 


     formframesindex++; 
     var formframe = $("<iframe name='formframe_id_"+(formframesindex)+"' id='formframe_id_"+(formframesindex)+"' class='formframe' src='/fakeformreceiver.php'></iframe>"); 
     $('body').append(formframe); 
     var target = $form.attr('target'); 
     $form.data('originaltarget',target); 
     $form.data('originalaction',original_action); 
     $form.attr('target','formframe_id_'+formframesindex); 
     $form.attr('action','/fakeformreceiver.php'); 
     $form.addClass('framesubmitting'); 
     $form.submit(); 

    } else { 
     var current_target = $form.attr('target'); 
     var original_action = $form.data('originalaction'); 
     var original_target = $form.data('originaltarget'); 
     var $frame = $('#'+current_target); 
     setTimeout(function(){ 
      if($frame && $frame.length){ 
       $frame.remove(); 
      } 
      $form.attr('action',original_action); 
      $form.attr('target',original_target); 
      $form.removeClass('framesubmitting'); 
     },100); 
    } 
    return framesubmitting; 
} 
+0

क्रोम 46 ने अपना गलत व्यवहार तय किया - अब 'iframe' वर्कअराउंड की आवश्यकता नहीं है। Https://stackoverflow.com/a/33113374/810109 देखें – mkurz

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