2014-10-20 11 views
13

में प्राधिकरण शीर्षलेख अनुपलब्ध है, मैं वर्तमान में एक PHP स्क्रिप्ट में प्राधिकरण शीर्षलेख पढ़ने की कोशिश कर रहा हूं जिसे मैं POST अनुरोध के साथ बुला रहा हूं। प्राधिकरण शीर्षलेख टोकन के साथ आबादी है। ऐसा लगता है कि प्राधिकरण शीर्षलेख किसी भी तरह से मेरी PHP स्क्रिप्ट पर आने से पहले हटा दिया गया है। मैं पोस्टमैन (क्रोम एडन) के साथ पोस्ट अनुरोध निष्पादित कर रहा हूं और मैंने अपनी PHP स्क्रिप्ट में सीओआरएस सक्षम किए हैं। मेरे पास सीधे अपाचे सर्वर तक पहुंच नहीं है।PHP POST अनुरोध

HTTP अनुरोध:

Accept:*/* 
Accept-Encoding:gzip,deflate 
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2 
Authorization:Bearer mytoken 
Cache-Control:no-cache 
Connection:keep-alive 
Content-Length:32 
Content-Type:text/plain;charset=UTF-8 
Host:www.myhost.com 
Origin:chrome-extension://fdmmgilgnpjigdojojpjoooidkmcomcm 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)  
Chrome/38.0.2125.104 Safari/537.36 

PHP स्क्रिप्ट:

header("Access-Control-Allow-Origin: *"); 
header("Access-Control-Allow-Headers: Authorization, Origin, X-Requested-With, Content-Type,  Accept"); 
header("Content-Type: application/json"); 

$headers = getallheaders(); 
echo $headers['Authorization']; 

ऊपर स्क्रिप्ट आउटपुट '' (= कुछ भी नहीं)।

+0

किसी को भी पता चला कि मैं इस मुद्दे को डीबग करने के लिए और क्या देख सकता हूं? – jimmy

उत्तर

35

कुछ समय बाद इस समस्या का समाधान मिला। किसी भी तरह प्राधिकरण शीर्षलेख को हटा दिया गया था और मेरी .htaccess में निम्न पंक्तियों को जोड़कर मैं इसे काम करने में सक्षम था।

RewriteEngine On 
RewriteCond %{HTTP:Authorization} ^(.*) 
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1] 
+0

PHP 5.4 और अपाचे पर मेरे REST एपीआई के साथ HTTP मूल प्रमाणीकरण का उपयोग करने का प्रयास करते समय मुझे एक ही समस्या थी। मैंने शेष एपीआई के लिए रिवाइटइंजिन ऑन का समर्थन करने के लिए .htaccess फ़ाइल को संशोधित किया था और इसी तरह मेरे सभी अनुरोध शीर्षलेख प्राधिकरण को छोड़कर वहां थे जब मैं उन्हें PHP में पूछता हूं। आपका फिक्स सही है, धन्यवाद! – Deemoe

+1

यह कस्टम मार्गों का उपयोग होने पर कोडइग्निटर-रेस्टसर्वर लाइब्रेरी का उपयोग करते हुए CodeIgniter 3 का उपयोग करते समय एक ही समस्या को हल करता है। दिलचस्प बात यह है कि यह एक समान मूल्य के साथ दो शीर्षलेख, 'HTTP_AUTHORIZATION' और' REDIRECT_HTTP_AUTHORIZATION' भी बनाता है। – tj111

+0

बहुत बढ़िया जवाब, पूरी तरह से काम करता है। अगर आपके पास अपनी .htaccess फ़ाइल में अन्य स्थितियां हैं, तो मैंने इसे शीर्ष (पहले) पर रखा है। – Calin

1

सरणी नीचे रखती अनुरोध हेडर, कि $ _SERVER चर

$headers = apache_request_headers(); 

(विशेष रूप से 'HTTP_X_REQUESTED_WITH' ajax हेडर के लिए सच है, के रूप में इस तरह से मिल जाएगा, जिसमें गायब हो सकता है: $headers['X_REQUESTED_WITH']

0

मुझे नहीं पता कि एनजीआईएनएक्स पर चल रहा मेरा PHP 5.4.45 अंडरस्कोर वाले किसी भी कस्टम हेडर से इंकार कर रहा था:

स्वीकार: CURLOPT_HTTPHEADER => सरणी ('प्राधिकरण: 123456')

इनकार कर दिया: CURLOPT_HTTPHEADER => सरणी ('my_Authorization: 123456')

मुझे आशा है कि यह किसी की मदद कर सकते हैं। चीयर्स

संबंधित मुद्दे