2009-10-30 17 views
10

के साथ मूल प्रमाणीकरण मैं ट्विटर पर अद्यतन प्राप्त करने के लिए XMLHTTPRequest का उपयोग करने का प्रयास कर रहा हूं।XMLHTTPRequest

var XMLReq = new XMLHttpRequest(); 
XMLReq.open("GET", "http://twitter.com/account/verify_credentials.json", false, "TestAct", "password"); 
XMLReq.send(null); 

हालांकि, मेरे स्निफर का उपयोग करके मैं किसी भी प्राधिकरण शीर्षलेख को पारित नहीं कर सकता। इसलिए, मुझे ट्विटर से 401 त्रुटि प्रतिक्रिया मिलती है।

खाता और पासवर्ड सही ढंग से दर्ज किया गया है।

कोई भी इसका प्रयास करता है? क्या कोई मुझे कुछ पॉइंटर्स दे सकता है? धन्यवाद।

उत्तर

1

मूल नीति के कारण, आप अपने डोमेन से XML डोमेन को किसी अन्य डोमेन पर नहीं बना सकते हैं। जैसे आप http://twitter.com/... यूआरएल का उपयोग नहीं कर सकते हैं जब तक आपकी स्क्रिप्ट twitter.com से लोड नहीं हो जाती। यदि आपकी स्क्रिप्ट http://localhost/ से लोड की गई है, तो AJAX अनुरोध को स्थानीयहोस्ट पर भी जाना होगा।

9

क्रॉस-मूल अनुरोधों में, आपको withCredentials ध्वज स्पष्ट रूप से सेट करना होगा यदि आप उपयोगकर्ता प्रमाण-पत्र भेजना चाहते हैं।

http://www.w3.org/TR/XMLHttpRequest/#the-withcredentials-attribute देखें (जहां user credentials HTTP प्रमाणीकरण भी शामिल है)

+1

न्यू लिंक https://xhr.spec.whatwg.org/#the-withcredentials-attribute और https://xhr.spec.whatwg.org/#user-credentials – sberder

44

तुम सिर्फ एक बेस 64 इनकोडिंग स्ट्रिंग में एक प्राधिकरण हैडर, एक उपयोगकर्ता नाम और पासवर्ड को जोड़ने के लिए इस प्रकार की जरूरत है।

XMLReq.setRequestHeader("Authorization", "Basic " + btoa("username:password")); 
+1

चाहिए 'client' हैं कोड स्निपेट में 'XMLReq' (प्रश्न से चर) होना चाहिए? – JaKu

+0

असल में, हाँ आप सही हैं। विधि XMLHttpRequest.setRequestHeader (हेडर, मान) है। –