डिस्क एपीआई के लिए एक्सिस GET अनुरोध 403 निषिद्ध प्रतिक्रिया देता है, लेकिन पोस्टमैन में काम करता है
मैं अपने स्थानीय वातावरण पर एपीआई एपीआई को HTTP GET अनुरोध करने के लिए axios का उपयोग कर रहा हूं।
मैं नीचे दिए गए कोड का उपयोग कर रहा हूं:
axios.get('https://discord.com/api/channels/735303230694621228', {
withCredentials: true,
headers: {
Authorization: 'Bot ' + botToken,
},
}).then((data) => {
res = data.response
})
बॉट चैनल आईडी का मालिक है: 735303230694621228 और सभी सही अनुमतियाँ हैं।
वास्तविक परिणाम:
प्रीफ़लाइट अनुरोध (विकल्प) सभी सही हेडर के साथ 200 की प्रतिक्रिया देता है।
प्रीफ़्लाइट के बाद, GET अनुरोध होगा और मुझे निम्नलिखित प्रतिक्रिया देगा:
403 Forbidden
ब्राउज़र भी एक CORS त्रुटि देगा, लेकिन मुझे पूरा यकीन है कि 403 प्रतिक्रिया के कारण, क्योंकि 403 सभी सही CORS हेडर नहीं देता है।
अपेक्षित परिणाम:
Status 200 OK
मैं कोशिश करूँगा https://discord.com/api/channels/735303230694621228 पोस्टमैन के साथ एक ही बॉट टोकन के साथ और यह मुझे अपेक्षित बॉडी के साथ 200 का जवाब देता है।
किसी को भी मुझे पता नहीं क्यों मैं एक 403 हो रही है जब मैं अपने स्थानीय वातावरण पर ब्राउज़र के साथ axios का उपयोग करता हूं, लेकिन मुझे पोस्टमैन के साथ 200 की प्रतिक्रिया मिल रही है?
जवाब
एक साथ कलह प्रतिक्रिया 403
के लिए कुछ User-Agent
पर रों कुछ एपीआई संसाधनों।
इसका परीक्षण करने के लिए, अपने User-Agent
हेडर के साथ पोस्टमैन अनुरोध को उस मान पर सेट करें जो किसी ब्राउज़र जैसे से मेल खाता होUser-Agent: Mozilla/5.0
अफसोस की बात है, ब्राउज़र User-Agent
हेडर को एक में ओवरराइड करेगा axios.get()
, भले ही आप अपने .get()
कॉन्फ़िगरेशन में से एक को परिभाषित करें ।
ऊपर क्यों Postman ( User-Agent: PostmanRuntime/7.0.0
) एक 200
प्रतिक्रिया प्राप्त करता है , लेकिन आपके ब्राउज़र ( User-Agent: Mozilla/5.0
) एक प्राप्त करता है 403
।
यह ध्यान देने योग्य है कि डिस्कवर्ड एपीआई प्रलेखन इसकी व्याख्या नहीं करता है (अगस्त 2020 में)https://discord.com/developers/docs/resources/channel#get-channel