مكالمة AJAX الخاصة بي لا تعيد أي شيء ولكن لا تفشل أيضًا
-
21-09-2019 - |
سؤال
لدي هذا 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 لاسم المستخدم المقدم
لا تنتمي إلى StackOverflow