निम्न कोड (PouchDB Authentication प्लगइन का उपयोग करके) विफल रहता है क्योंकि यह ब्राउज़र को सीओआरएस प्रीफलाइट अनुरोध भेजने के लिए ट्रिगर करता है, और कॉच डीबी OPTIONS
HTTP विधि का समर्थन नहीं करता है।सीओआरएस प्रीफलाइट अनुरोध ट्रिगर करने वाला पाउचडीबी प्रमाणीकरण
var db = new PouchDB("http://localhost:5984/mydb");
db.login('username', 'password');
// assume the database URL and login info are valid
यहां त्रुटि (क्रोम में) है। ध्यान दें कि यह समस्या एज में भी होती है, लेकिन फ़ायरफ़ॉक्स में नहीं:
XMLHttpRequest http://localhost:5984/_session लोड नहीं कर सकता है। preflight के लिए प्रतिक्रिया अमान्य HTTP स्थिति कोड है 405
और यहाँ हेडर कि क्रोम अनुरोध के लिए (वे फ़ायरफ़ॉक्स में काफी अलग नहीं हैं) भेज रहा है कर रहे हैं: के माध्यम से CORS
POST /_session HTTP/1.1
Host: localhost:8080
Connection: keep-alive
Content-Length: 25
Accept: application/json
Origin: http://localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://localhost:8080/
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8,es-419;q=0.6,es;q=0.4
मैं पहले से ही सक्षम किया है add-cors-to-couchdb
नोड स्क्रिप्ट। बातें जो मैंने कोशिश की है:
- मैन्युअल
OPTIONS
एक विधि के रूप[cors]
के तहत मेरे local.ini - तीसरा तर्क के रूप में
{ ajax: { content_type: "text/plain" } }
पासिंग मेंlogin
तो में जोड़ने से, मेरे सवाल यह है:
- मैं प्रीफलाइट अनुरोध को ट्रिगर होने से कैसे रोक सकता हूं? MDN documentation पर देखकर, यह आवश्यक प्रतीत नहीं होता है।
- यदि पिछला संभव नहीं है, तो मैं अपने कॉच डीबी सर्वर को प्रीफलाइट अनुरोधों का जवाब देने के लिए कैसे सेट कर सकता हूं?
सुझाव के लिए धन्यवाद। दुर्भाग्यवश, जब मैंने वर्णन के रूप में उत्पत्ति को निर्दिष्ट करने का प्रयास किया, तो परिणाम पहले जैसा था (समान त्रुटि, कोई प्रमाणीकरण नहीं)। लिंक के लिए भी धन्यवाद, जानकारी बहुत उपयोगी है! – rvighne