مكالمة AJAX الخاصة بي لا تعيد أي شيء ولكن لا تفشل أيضًا

StackOverflow https://stackoverflow.com/questions/2299754

سؤال

لدي هذا HTML:

<input type="text" id="text"/>
<input type="button" id="submit" value="Submit" />
<div id="twitter_update_list">
</div>

وهذا JavaScript:

var xmlHttp;
document.body.onclick = function(){
    var username = document.getElementById('text').value;
    selectUser(username);
}
    function selectUser(username){
        var url = "http://twitter.com/statuses/user_timeline/" + username + ".json?callback=twitterCallback2&count=100";
        try{// Opera 8.0+, Firefox, Safari
            xmlHttp = new XMLHttpRequest();
        }catch (e){// IE
            try{
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try{
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e){
                    // Something went wrong
                    alert("Your browser broke!");
                    return false;
                }
            }
        }
        xmlHttp.onreadystatechange = processRequest;
        xmlHttp.open( "GET", url, true );
        xmlHttp.send( null );
    }

    function processRequest(){
        if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) {
            if ( xmlHttp.responseText == "Not found" ) {
                document.getElementById('twitter_update_list').innerHtml = "Not found";
            }else if(xmlHttp.responseText == " "){
                document.getElementById('twitter_update_list').value = "Empty";
            }else{
                // No parsing necessary with JSON!        
                document.getElementById('twitter_update_list').value = xmlHttp.responseText;
                console.log(xmlHttp.responseText);
            }
        }
    }

أنا أنظر إلى Firebug وأرى أن كل شيء يتم إرساله بشكل صحيح لكنني لا أحصل على أي رد على الإطلاق. أوه ، وأنا أستخدم JavaScript الخام لأنني أريد ممارستها. =)

هل كانت مفيدة؟

المحلول

أنت تحاول القيام بمجال XMLHTTPrequest. لا تعمل على الرغم من أن الخدمة قد تدعم JSONP. للقيام بطلب JSOP ، تحتاج إما إلى ضخ أ <script> علامة مع معالجات الأحداث الصحيحة أو استخدم إطار عمل مثل jQuery.

نصائح أخرى

إذا كنت تستخدم jQuery ، يمكنك القيام بذلك البسيط

$.load("http://twitter.com/statuses/user_timeline/"+username,
function(data)
{
alert(data);
}
);

الذي سيطبع usertimeline لاسم المستخدم المقدم

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top