So I'm using plain javascript (no jquery), to send a file to the server. Server script PHP returns status code 200 at the end, but instead javascript is getting readyState == 2.
The PHP code sends back status code 200:
header('X-PHP-Response-Code: 200', true, 200);
exit;
The javascript is doing:
request.onreadystatechange = function() {
        if (request.readyState == 4) {
            var message;
            switch(request.status) {
                case '200':
                     message = "Data uploaded successfully.";
                break;
                case '406':
                    message = "Incorrect file format.  Please try again.";
                break;
                case '410':
                    message = "Unexpected error.  Please contact support.";
                break;
                default:
                break;
            }
            status_message_container.innerHTML = message;
            submit_button.disabled = false;
        }
        else {
            alert( "Unexpected error:  " + this.statusText + ".\nPlease try again");
        }
    };
    request.send(formData);
Even know the HTTP 200 status code comes back correctly (I get 'OK') on frontend.  The JS script is seeing readyState==2 (i.e. else block always hit)
My understanding is that a server status code of 200 should give readyState == 4??
 
    