jquery - How do I perform an Ajax request to CouchDB (http://<usename>.couchone.com/) -


मैं एक सरल AJAX (jQuery के माध्यम से) अनुरोध http: // yourusername .couchone.com / (सबसे पहले जैसा कि मैंने स्थानीयहोस्ट पर कोचडब स्थापित किया था)

अगर मैं http: //** yourusname**.couchone.com/ ब्राउज़र के माध्यम से मुझे मिलेगा: {"couchdb": "स्वागत", "संस्करण": "1.0.1"} इसलिए, यह सीरियल किए गए JSON जैसा दिखता है।

इसलिए मैंने एक जेएस कोड लिखा था:

  $ (फ़ंक्शन () {$ .getJSON ('http: //www.************************************************************************ (डेटा) {console.log (data.couchdb); console.log (data.version);});});  

लेकिन कोड काम नहीं करता है FireBug कंसोल से पता चलता है कि GET अनुरोध का कोई जवाब नहीं है (पूरी लाइन लाल रंग में है) सब कुछ जो मैं देख सकता हूं अनुरोध हैडर और उत्तर-हेडर है, लेकिन कोई डेटा (प्रतिक्रिया के रूप में)

अनुरोध -हाइडर:

  होस्ट: www *******। Couchone.com उपयोगकर्ता-एजेंट: मोज़िला / 5.0 (विंडोज; यू; विंडोज़ एनटी 6.1; डी; Rv: 1.9.2.10) Gecko / 20100914 फ़ायरफ़ॉक्स / 3.6.10 फ़ायरफ़ॉक्स / 0.4 स्वीकार करें: आवेदन / जेसन, टेक्स्ट / जावास्क्रिप्ट, * / * स्वीकार-भाषा: डी-डी, डी; क्यू = 0.8, एन-यू; q = q = 0.5, एन; क्यू = 0.3 एन्कोडिंग-एन्कोडिंग: जीज़िप, डिस्प्लेक्ट एक्ट-कैरसेट: आईएसओ -885 9 -1, यूटीएफ -8; क्यू = 0.7, *; क्यू = 0.7 एटिवेट: 115 कनेक्शन: रख-जिंदा मूल: रिक्त  

रिस्पांस-हैडर:

  सर्वर: कोचडीबी / 1.0.1 (एरलांग ओटीपी / आर 13 बी) दिनांक: सूर्य, 26 सितंबर 2010 12:45:47 GMT सामग्री-प्रकार: आवेदन / जेएसन सामग्री-लंबाई: 40 कैश-नियंत्रण: पुनःप्राप्त करें  

विचार? सुझाव?

पी.एस. खराब अंग्रेज़ी के लिए क्षमा करें

क्रॉस-साइट सुरक्षा मॉडल आपको JSON अनुरोधों को किसी भिन्न डोमेन से रोकता है। < / P>

आपको इसका पूरा करने में सक्षम होना चाहिए। यह एक XMLHTTPRequest के बजाय एक & lt; स्क्रिप्ट & gt; के रूप में अनुरोध करता है & lt; स्क्रिप्ट & gt; में ऐसा सुरक्षा मॉडल नहीं है

मुझे नहीं पता कि couchdb JSONP को हालांकि समर्थन करता है। आम तौर पर JSONP के लिए अनुरोध इस तरह दिखता है:

  http: // someUrl / somePath? Jsonp = mycallback  

प्रतिक्रिया डेटा jsonp पैरामीटर और रिटर्न पढ़ता है मूल पृष्ठ के contenxt में निष्पादित करने के लिए वैध जावास्क्रिप्ट:

  myCallback ({JSON: डेटा, JSON: डेटा});  

आपको यह सुनिश्चित करना है कि आप JSONP प्रदाता पर भरोसा करते हैं, क्योंकि आप अनिवार्य रूप से उन्हें अपने पृष्ठ पर जावास्क्रिप्ट निष्पादन पहुंच देते हैं। आपके मामले में आप संभवतः ऐसा करते हैं क्योंकि यह आपकी खुद की काउच डेटाबेस है।

कोई अन्य समाधान नहीं है, मानक $ .getJSON () काम नहीं करेगा अगर पारित यूआरएल आपके पृष्ठ के समान डोमेन नहीं है। <पी> पी एस मैंने couchone.com को देखा, और मुझे कुछ भी दिखाई नहीं देता जो सुझाव देता है कि वे JSONP का समर्थन करते हैं। आपको अपनी स्वयं की सर्वर-साइड रैपर स्क्रिप्ट की आवश्यकता होगी, जो कि बस couchone के अनुरोध का अनुरोध करता है और प्रतिक्रिया थोक (जो आपके वास्तविक काउचबब प्रदाता URL को छुपाने का लाभ होता है) को भेजता है, या किसी अन्य प्रदाता को खोजने के लिए जो JSONP का समर्थन करता है ।


Comments