मैं एक नोड.जेएस ऐप लिख रहा हूं जिसे हमारे आंतरिक एपीआई में से किसी एक डेटा से अनुरोध करना है। मुश्किल हिस्सा सर्वर मैं से डेटा का अनुरोध कर रहा हूँ कुछ सीमाएँ हैं कि:Node.js HTTPS 400 त्रुटि - 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'
- अनुरोध, HTTPS प्रोटोकॉल (HTTP नहीं)
- अनुरोध एक लैन IP पते का उपयोग किया जाना चाहिए पर किया जाना चाहिए क्योंकि डोमेन नाम आंतरिक रूप से काम नहीं करेगा
- अनुरोध बाहरी डोमेन नाम से अनुरोध करने के लिए प्रतीत होता है, क्योंकि वर्चुअल होस्ट के लिए यही सेटअप है।
ऐसा करने में, मैं कोड का एक सा है कि इस तरह दिखता है चल रहा हूँ:
var headers = {
Host: externalHostname,
Hostname: externalHostname,
};
var options = {
host: InternalIP,
path: path,
method: 'GET',
headers: headers
};
var req = https.request(options, function(res) {
res.setEncoding('utf8');
var data = "";
res.on('data', function(chunk) {
data += chunk;
});
res.on('end', function() {
//Do something with that data
});
res.on('error', function(err) {
console.log("Error during HTTP request");
console.log(err);
});
});
req.end();
दुर्भाग्य से, मैं एक 400 (आपका ब्राउज़र हो रही है एक अनुरोध भेजा है कि इस सर्वर सका समझ में नहीं आता) प्रतिक्रिया के रूप में त्रुटि। मैंने डबल और ट्रिपल चेक किया है कि होस्टनाम, आईपी पता, और पथ का नाम बिल्कुल सही है (मैं उन्हें अपने ब्राउज़र के भीतर से जांच सकता हूं, और सब अच्छा है)।
मैंने अपने प्रतिक्रिया चर (res) का आउटपुट किया, और UNABLE_TO_VERIFY_LEAF_SIGNATURE
का प्रमाणीकरण मान प्राप्त कर रहा हूं। मुझे यकीन नहीं है कि यह क्या है, या यदि यह मेरी समस्या है, लेकिन यह जानकारी का एकमात्र उपयोगी बिट है जो मुझे मिल सकता है।
मैंने अपने प्रतिक्रिया चर here का पूरा आउटपुट डाला।
इस पर कोई विचार क्या हो सकता है?
अपडेट: मैंने इसे समझ लिया! मैं ?PHPSESSID=asdad
GET
चर पारित करके सर्वर के साथ प्रमाणित करने का प्रयास कर रहा था, लेकिन वे अक्षम हैं। मैं कुकी हेडर में PHPSESSID
सेट करके इसे काम करने में सक्षम था। नवीनतम Node.js में tls.js स्रोत से
क्या आपके पास इस तरह की रेखा है कि 'var https = requ (' https '); '? –
@ माइकल। हाँ। https एक वैश्विक चर है, और मुझे पता है कि यह काम कर रहा है क्योंकि वास्तविक HTTPS अनुरोध आग लग रहा है - यह केवल 400 त्रुटि के साथ जवाब दिया गया है। – jwegner
आपके विकल्पों में भी आपकी अनुपलब्ध 'विधि: ['get', 'post']' है ... दस्तावेज़ों को प्रबंधित करता है http://nodejs.org/docs/v0.4.0/api/https.html#https.request –