/ / JSONP क्रोम में काम कर रहा है, लेकिन फ़ायरफ़ॉक्स / IE में नहीं? - जावास्क्रिप्ट, jquery, ajax, jsonp, cors

JSONP क्रोम में काम कर रहा है, लेकिन फ़ायरफ़ॉक्स / IE में नहीं? - जावास्क्रिप्ट, jquery, ajax, jsonp, cors

मैं एक मोबाइल साइट विकसित कर रहा हूं और मैं JSONP का उपयोग कर रहा हूंमोबाइल साइट पर प्रदर्शित करने के लिए जानकारी प्राप्त करने के लिए डेटा सर्वर से संपर्क करने के लिए jQuery के माध्यम से अनुरोध। मुझे बताया गया था कि एक PHP स्क्रिप्ट को प्रॉक्सी के रूप में उपयोग नहीं किया जाना चाहिए क्योंकि इससे मोबाइल सर्वर (उपयोगकर्ताओं के लाखों) पर अतिरिक्त अनावश्यक भार होगा और इस क्लाइंट-साइड को सख्ती से करना होगा। मैं निम्नलिखित कोड का उपयोग कर रहा हूं:

var get_vars = "&callback=?&var=here";

$.ajax({
url: "http://server.com/script?" + get_vars,
type: "GET",
dataType: "jsonp",
//xhrFields: { withCredentials: true },
//crossDomain: true,
success: function(data){
console.log(data)
}
});

सर्वर कुकी प्रमाणीकरण का उपयोग करता हैनिर्धारित करें कि डेटा वापस करने से पहले उपयोगकर्ता लॉग इन है या नहीं। अजीब तरह से, इस कोड ने फ़ायरफ़ॉक्स पर एक बार काम किया। बाद में पृष्ठ के पुनः लोड / रिफ्रेश होने के कारण साख सर्वर द्वारा सत्यापित नहीं हो पाती है। पहले मुझे लगा कि यह मेरे कोड में कुछ बदलावों के कारण था लेकिन Google Chrome में परीक्षण करने के बाद, यह 100% समय पर काम करता है। फ़ायरफ़ॉक्स / IE के लिए कंसोल में कोई JS त्रुटियाँ प्रदर्शित नहीं हैं। मैंने यह सुनिश्चित किया कि यह "t कैशिंग मुद्दा" है और फ़ायरफ़ॉक्स के साथ एक अन्य मशीन पर भी यह प्रयास किया, कोई फायदा नहीं हुआ। यह समस्या विंडोज फोन पर भी होती है और विंडोज 8 पर इंटरनेट एक्सप्लोरर का नवीनतम संस्करण है। मुझे लगता है कि इसे कुकी होना चाहिए- संबंधित और किसी तरह क्रेडेंशियल दूरस्थ सर्वर के लिए पारित किया जा रहा है।

कोर्स का उपयोग करने की कोशिश के रूप में ...मैंने इसे आज़माया (जैसा कि आप टिप्पणी किए गए बिट्स देख सकते हैं, साथ ही मैंने $ .support.cors = true) जोड़ने की कोशिश की, और cann "t इसे काम करने के लिए। मैं सर्वर होने के बावजूद" क्रॉस डोमेन अनधिकृत "त्रुटि प्राप्त करता रहा। निम्नलिखित शीर्ष लेख भेजें:

पहुँच-नियंत्रण-अनुमति-क्रेडेंशियल्स: सच प्रवेश-नियंत्रण-अनुमति-उत्पत्ति: *

किसी को भी कोई सुराग है क्या यह कारण हो सकता है? मुझे JSONP के साथ यह काम करना पसंद है क्योंकि यह क्रोम में पहले से काम कर रहा है।

अतिरिक्त नोट: ऐसा प्रतीत होता है कि किसी अन्य डेवलपर को मेरे जैसे ही मुद्दे नहीं आ रहे हैं। वह रिपोर्ट कर रहा है कि यह फ़ायरफ़ॉक्स में 100% समय पर काम कर रहा है। मैंने भी निम्नलिखित कोशिश की:

  • एक वर्चुअल मशीन में फ़ायरफ़ॉक्स लोड हो रहा है और एक ही समस्याओं में भाग गया (सुनिश्चित करने के लिए नहीं OS समस्या)
  • मेरे फोन पर क्लीयर कैश, अक्षम वाईफ़ाई, और एक ही मुद्दे के साथ एक अलग आईपी के माध्यम से जुड़ा हुआ है

ऊग। मुझे लगता है कि यह सर्वर-साइड पर होना शुरू हो सकता है, हालांकि मुझे यकीन नहीं है कि यह क्यों होगा, क्योंकि यह 100% ठीक काम कर रहा था जब मैं PHP का उपयोग कर रहा था।

उत्तर:

जवाब के लिए 0 № 1

ऐसा लगता है कि मैं बदलना भूल गया थाविधि मैं AJAX के माध्यम से लॉगिन करने के लिए उपयोग कर रहा था। मैं केवल लॉग इन होने के बाद डेटा कॉल पर JSONP विधि का उपयोग कर रहा था। कॉर्स का उपयोग करते समय, यह कुकी डेटा को अलग रखता है और इसलिए रिमोट सर्वर कुकी डेटा को ठीक से नहीं पढ़ रहा था।

TLDR; डॉन "टी मिक्स कॉर्स और JSONP एक साथ - एक या दूसरे का उपयोग करने के लिए सुनिश्चित करें कि आप यह सुनिश्चित करने के लिए नहीं" इस मुद्दे में अपने आप को चलाने!