Вы открываете его асинхронно. Чтобы сделать это синхронно, измените это:
xmlhttp.open("GET",title,true);
К этому:
xmlhttp.open("GET",title,false);
Обычно считается, что лучшим способом было бы заставить его работать с асинхронностью:
function getIDs() {
alert("1");
var title = document.getElementById('title').value;
title = "http://www.imdbapi.com/?i=&t=" + title;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if(xmlhttp.readyState==4) {
var imdbData = xmlhttp.responseText;
var imdbJSON = JSON.parse(imdbData);
document.getElementById('title').value = imdbJSON.Title;
document.getElementById('imdbid').value = imdbJSON.ID;
}
};
xmlhttp.open("GET",title,true);
xmlhttp.send();
return true;
}
Кроме того, вы не можете запрашивать страницы из других доменов. Возможно, вам придется переключиться на JSONP, если используемый вами API его поддерживает, или использовать ваш веб-сервер в качестве прокси.