<html>
<body>
<p>Test for <a href="https://bugs.webkit.org/show_bug.cgi?id=36854">bug 36854<a>:
Body from cross origin preflight response is prepended to the actual response body.</p>
<div id=result>Running test...</div>
<script>

if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

window.onload = function() {
    var xhr = new XMLHttpRequest();
    xhr.onload=function() {
        document.getElementById("result").innerHTML = (xhr.responseText == "echo") ? "PASS" : ("FAIL: " + xhr.responseText);
        if (window.testRunner)
            testRunner.notifyDone();
    };

    xhr.open("GET","http://localhost:8000/xmlhttprequest/resources/access-control-allow-with-body.php");
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    xhr.send(null);
};

</script>

</body>
</html>
