2010-12-29 17 views
6

साथ JSON पुनः प्राप्त मैं अपने स्टैक ओवरफ़्लो प्रोफ़ाइल से जानकारी प्राप्त करना चाहते हैं JSON एपीआई का उपयोग कर के रूप में।StackOverflow एपीआई

तो मैं इस लिंक http:/api.stackoverflow.com/1.0/users/401025/ का उपयोग करें।

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

<html> 
<head> 
    <script> 
    var req; 

    getReputation(); 

    function getReputation(){ 
     req = new XMLHttpRequest(); 
     req.open('GET', 'http://api.stackoverflow.com/1.0/users/401025/'); 
     req.onreadystatechange = processUser; 
     req.send(); 
    } 

    function processUser(){  
     var res = JSON.parse(req.responseText); 
     alert('test');  
    } 
    </script> 
</head> 

चेतावनी कभी नहीं निकाल दिया जाता है और req.responseText रिक्त लग रहा है:

यहाँ मेरी कोड (http://jsfiddle.net/hJhfU/2/) है। कोई विचार?

+7

jQuery का प्रयोग करें। मैनुअल AJAX आपके कोड को पढ़ने से लोगों को नफरत करता है और आपको गलतियां करने की संभावना है। – ThiefMaster

+0

@ थिफ़ास्टर आप मेरे अपडेट किए गए उत्तर को देखते समय हंसने जा रहे हैं। –

उत्तर

8

नोट: आप किसी अन्य डोमेन का उपयोग करने के अजाक्स का उपयोग नहीं कर सकते। (यह same-domain policy कहा जाता है।)

हालांकि, StackOverflow एपीआई, JSONP कॉलबैक का समर्थन करता है इसलिए यहाँ एक समाधान है: एक <script> टैग के माध्यम से स्क्रिप्ट में

लोड।

एक समारोह सिर्फ इतना है कि करता है कि बनाएँ:

function soResponse(obj) { 
    alert(obj.users[0].reputation); 
} 

यह लोड:

function load_script(src) { 
    var scrip = document.createElement('script'); 
    scrip.src = src; 
    document.getElementsByTagName('head')[0].appendChild(scrip); 
    return scrip; //just for the heck of it 
} 

कॉलबैक फ़ंक्शन सेट करें!

load_script('http://api.stackoverflow.com/1.0/users/401025/?jsonp=soResponse'); 
+0

ठीक है, लेकिन यह कुछ भी, http://jsfiddle.net/hJhfU/2/ –

+0

@ArtWorkAD सबसे पहले, अजाक्स jsFiddle पर काम नहीं करता करते doen't जब मैं इस चलाते हैं। दूसरा, मेरा अद्यतन उत्तर देखें। –

+0

ऐसा लगता है कि req.responseText खाली है –

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