2009-11-16 10 views
15

मैं सरल jQueryjQuery: मैं विकल्प का अनुरोध बजाय प्राप्त

$.get(....); 

उपयोग कर रहा हूँ यहाँ GET के बजाय प्रतिक्रिया मैं विकल्प प्राप्त हो रही मिल (फ़ायरबग नेट में जाँच)

एक ही कोड में ठीक काम कर रहा है। सफारी। फ़ायरफ़ॉक्स के साथ कुछ समस्या की तरह लग रहा है।

कोई वैकल्पिक हल/समाधान इस समस्या को दूर करने के लिए ..

धन्यवाद

Kurund

+1

यूआरएल आप अपने पृष्ठ के रूप में एक ही डोमेन पर करने के लिए अनुरोध कर रहे हैं, या इस पार है -डोमेन? –

+0

यह ... अविश्वसनीय रूप से अजीब है।एक न्यूनतम परीक्षण मामले के बारे में कैसे हमें पता चल रहा है कि क्या हो रहा है? – outis

+1

यूआरएल को क्रॉस-डोमेन कहा जाता है। –

उत्तर

0

मुझे आशा है कि इस मदद करता है किसी को बदल दिया है: http://kurund.com/blog/2010/09/09/how-to-call-external-site-url-using-jquery-ajax/

+0

यह तब काम नहीं करता है जब आपकी सेटिंग कस्टम हेडर jsonp स्क्रिप्ट को निष्पादित नहीं किया जा सकता है। – CmdrTallen

1

यह संभावना है जावास्क्रिप्ट पर प्रतिबंध क्रॉस-डोमेन XMLHttpRequests कर की वजह से। सुरक्षा कारणों से आम तौर पर इसकी अनुमति नहीं है। उपरोक्त संदर्भित प्रश्न देखें, या similar question I asked देखें।

  • एक Sever पक्ष घटक लिखें कि आपके AJAX अनुरोध की ओर से दूरस्थ संसाधन प्राप्त करेंगे (PHP या जो कुछ भी उपयोग करते हुए), या
  • एक JSONP कॉल करें: http://www.insideria.com/2009/03/what-in-the-heck-is-jsonp-and.html देख

    इस समस्या को हल करने के लिए (या जेएसओएनपी के लिए स्टैक ओवरव्लो के आसपास शिकार) :)

आशा है कि मदद करता है!

26

OPTIONS अनुरोध आप जो देखते हैं preflight अनुरोध है, तो आप के बारे में है कि यहां पढ़ सकते हैं:

यह वहाँ है, क्योंकि आप अनुरोध कर रहे हैं एक क्रॉस-डोमेन XMLHttpRequest ताकि ब्राउज़र को यह जांचना पड़े कि रिमोट सर्वर या नहीं पर आपके अनुरोध की अनुमति है या नहीं टी।

  • इसी Access-Control-* हेडर के साथ OPTIONS अनुरोध के लिए प्रतिक्रिया
  • सरल JSON
के बजाय एक JSONP अनुरोध का उपयोग लागू:

वहाँ (जैसा कि ऊपर उल्लेख) समस्या को हल करने दो समाधान हैं

+0

के लिए कोई समाधान नहीं मिल रहा है यह मेरा मामला प्रतीत होता है। लेकिन मैं विकल्प अनुरोध के लिए प्रतिक्रिया कैसे कार्यान्वित करूं? मुझे इसे कहां लागू करना चाहिए? मेरा WebMethod भी कॉल नहीं किया जाता है। क्या मुझे कुछ ओवरराइड करने की ज़रूरत है? – Nawaz

+0

@ नवाज: मैं .NET से परिचित नहीं हूं लेकिन शायद यह आलेख आपकी मदद कर सकता है: http://encosia.com/using-cors-to-access-asp-net-services-across-domains/ –

+5

मुझे करना है कहें 'आधुनिक' ब्राउज़र का क्रॉस-डोमेन व्यवहार हास्यास्पद हो रहा है। यदि आपके पास कॉचडब जैसे सर्वर हैं जो एक्सेस-कंट्रोल-ऑब्जेक्ट-उत्पत्ति भेजता है: * लेकिन विकल्प लागू नहीं करता है तो आप एक साधारण AJAX GET नहीं कर सकते क्योंकि ब्राउज़र पहले 'चेक' करने का निर्णय लेता है और सब कुछ तोड़ देता है। डेवलपर जानता है कि जीईटी काम करेगा लेकिन ब्राउज़र उन पर विश्वास नहीं करता है! – Marc

1

मेरे पास एक ही समस्या थी, मुझे लगता है कि कारण एचटीएमएल <head> अनुभाग में था, मैंने इस तत्व को

पर मूल तत्व सेट किया था
<base href="http://local.develepment.url" /> 

कौन सा मैं

<base href="http://<?php echo $_SERVER['HTTP_HOST']?>/" /> 
संबंधित मुद्दे