2011-12-02 11 views
17

मैं फोनगैप और एंड्रॉइड के तहत एक नोड.जेएस एंडपॉइंट हिट करने के लिए $ getJSON का उपयोग कर रहा हूं। कोड इसमैं फोनगैप और एंड्रॉइड 3.2 के तहत थर्ड-पार्टी कुकीज को कैसे सक्षम करूं?

$.getJSON(
    serverURL + "/login?callback=?", 
    "playerId=" + playerId + "&pwd=" + pwd, 
    function(data){ 
     theCallbackFunction.call(null, JSON.parse(data)); 
    }, 
    function(jqXHR, textStatus, errorThrown) { 
      alert('error ' + textStatus + " " + errorThrown); 
    } 
); 

लॉगिन अनुरोध के जवाब में, मेरा सर्वर एक सत्र कुकी भेजता है। यह कुकी केवल स्वीकार की जाती है और बाद में AJAX अनुरोधों में लौटा दी जाती है यदि ब्राउज़र में 'थर्ड-पार्टी कुकीज' सक्षम हैं। मैंने पाया है कि पुराने एंड्रॉइड डिवाइस (उदा। 2.2) इसे डिफ़ॉल्ट रूप से अनुमति देते हैं लेकिन नए (3.2) नहीं करते हैं।

क्या मेरे एंड्रॉइड एप्लिकेशन के लिए थर्ड-पार्टी कुकीज को सक्षम करने के लिए फोनगैप को मजबूर करना संभव है?

+0

मुझे नहीं लगता कि फोनगैप कुकीज़ का समर्थन करता है। http://stackoverflow.com/questions/3709315/phonegap-cookie-based- प्रमाणीकरण- php-not-working-webview http://stackoverflow.com/questions/6968209/phonegap-javascript-app-how-can- i-दुकान-कुकीज़ – Luka

उत्तर

0

फोनगैप कुकी एब्स्ट्रक्शन का समर्थन नहीं करता है। वास्तव में कभी भी आवश्यक नहीं है क्योंकि पहले से ही ऐप्स/प्लग-इन हैं जो करते हैं। इसके अलावा यह फोन/डिवाइस की कार्यक्षमता को लपेटना है, ब्राउज़र नहीं। हालांकि आप इसे एक jQuery प्लग-इन के साथ कर सकते हैं।

https://github.com/carhartl/jquery-cookie

1

मैं जब मेरे सर्वर के साथ प्रमाणित करने का प्रयास एक ऐसी ही समस्या थी। मैंने इसके बजाय स्थानीय स्टोरेज के उपयोग का सहारा लिया। नीचे दिए गए कोड या here देखें।

var store = window.localStorage, 
request = { 
    url: {SERVER_URL}, 
    headers : { 
     Cookie: store.getItem('session') 
    }, 
    complete: function (jqXHR, status){ 
     if (status != 'success') { 
      console.log('ajax status: failure'); 
     } else if (store.getItem('session') != null) { 
      console.log('ajax status: session exists'); 
     } else { 
      console.log('ajax status: saving cookie'); 
      var header = jqXHR.getAllResponseHeaders(); 
      var match = header.match(/(Set-Cookie|set-cookie): (.+?);/); 
      if (match) { 
       session = match[2]; 
       store.setItem("session", session); 
      } 
     } 
    } 
} 
$.ajax(request); 

उपरोक्त में, मैं स्थानीय स्टोरेज चर 'सत्र' की जांच कर रहा हूं और यदि यह मौजूद है, तो यह संग्रहीत कुकी भेज देगा। यदि यह अस्तित्व में नहीं है, तो यह सर्वर द्वारा शीर्षकों में भेजे गए 'सेट-कुकी' पैरामीटर को ले जाएगा, प्रासंगिक भाग से मेल खाता है और इसे स्थानीय स्टोरेज के 'सत्र' चर में संग्रहीत करेगा।

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