<!doctype html> <html> <head> <title>XMLHttpRequest: status error handling</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <link rel="help" href="https://xhr.spec.whatwg.org/#handler-xhr-onerror" data-tested-assertations="../.." /> <link rel="help" href="https://xhr.spec.whatwg.org/#the-status-attribute" data-tested-assertations="/following::ol/li[3]" /> </head> <body> <p>This shouldn't be tested inside a tunnel.</p> <div id="log"></div> <script> function noError(method, code) { var test = async_test(document.title + " " + method + " " + code) test.step(function() { var client = new XMLHttpRequest() client.open(method, "resources/status.py?code=" + code, true) client.onreadystatechange = test.step_func(function() { assert_equals(client.response, "", "response data") assert_equals(client.status, code, "response status") if (client.readyState == client.DONE) /* Give extra time for a bogus error event to pop up */ setTimeout(test.step_func(function() { test.done() } ), 100) }) client.onerror = test.step_func(function() { assert_unreached("HTTP error should not throw error event") }) client.send() }) } noError('GET', 200) noError('GET', 400) noError('GET', 401) noError('GET', 404) noError('GET', 410) noError('GET', 500) noError('GET', 699) noError('HEAD', 200) noError('HEAD', 404) noError('HEAD', 500) noError('HEAD', 699) noError('POST', 200) noError('POST', 404) noError('POST', 500) noError('POST', 699) noError('PUT', 200) noError('PUT', 404) noError('PUT', 500) noError('PUT', 699) </script> </body> </html>