when I run this code, when the readyState is 4, the ready status is 0. I'm not sure what i'm doing wrong... TIA //claim.js function sendRequest(request, url){ request.open("GET", url, true); request.onreadystatechange = updateCase; request.send(null); } function clearCase(){ var url = "clearCase.php"; sendRequest(request1, url); } function updateCase(){ //alert(request1.readyState); if (request1.readyState == 4) { response = request1.responseText; if (request1.status == 200) { alert('cleared!'); } else { alert(request1.status + 'not cleared'); } request1 = createRequest(); } } Code (markup): //ajax.js function createRequest() { var request = null; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = null; } } } if (request == null) { alert("Error creating request object!"); } else { return request; } } var request1 = createRequest(); Code (markup): //clearCase.php <?php session_start(); unset($_SESSION['stuff']); echo 'ok'; ?> PHP: //button with onclick command if(checkLevel('3')){?><td class="navTopTab_0"><a onClick="clearCase();" href="inputClaim.php">INPUT CLAIM</a></td><?php }; PHP: