Der Script-Bereich muss vorher schon da stehen
Nein, muss er nicht.
In der callback-Funktion wird o.g. Bereich überschrieben, z.B. so
document.getElementById('alib').innerHTML = response;
Wenn dann document.getElementById('alib').text = response; innerHTML geht nicht im IE.