status-preflight.htm (2046B)
1 <!DOCTYPE html> 2 <meta charset=utf-8> 3 <title>CORS - status after preflight</title> 4 <meta name=author title="Odin Hørthe Omdal" href="mailto:odiho@opera.com"> 5 6 <script src=/resources/testharness.js></script> 7 <script src=/resources/testharnessreport.js></script> 8 <script src=support.js?pipe=sub></script> 9 10 <h1>Status after preflight</h1> 11 12 <div id=log></div> 13 <script> 14 var counter = 0 15 16 function statusAfterPreflight(method, code) { 17 counter++ 18 19 async_test(document.title + " on " + method + " " + code).step(function() { 20 var client = new XMLHttpRequest() 21 client.open(method, CROSSDOMAIN + "resources/status.py?" + counter 22 +"&code=" + code + '&headers=x-nonsimple&preflight=200', true) 23 24 client.setRequestHeader('x-nonsimple', true) 25 client.onreadystatechange = this.step_func(function() { 26 if (client.readyState < client.HEADERS_RECEIVED) 27 return 28 assert_equals(client.response, "", "response data") 29 assert_equals(client.status, code, "response status") 30 if (client.readyState == client.DONE) { 31 /* Wait for spurious error events */ 32 this.step_timeout(() => { this.done() }, 10) 33 } 34 }) 35 36 client.onerror = this.step_func(function() { 37 assert_unreached("Shouldn't throw no error event!") 38 }) 39 40 client.send() 41 }) 42 } 43 44 /* method code */ 45 statusAfterPreflight("GET", 200) 46 statusAfterPreflight("GET", 204) 47 statusAfterPreflight("GET", 400) 48 statusAfterPreflight("GET", 401) 49 50 statusAfterPreflight("HEAD", 200) 51 statusAfterPreflight("HEAD", 204) 52 statusAfterPreflight("HEAD", 400) 53 statusAfterPreflight("HEAD", 401) 54 statusAfterPreflight("HEAD", 501) 55 statusAfterPreflight("HEAD", 699) 56 57 statusAfterPreflight("POST", 204) 58 statusAfterPreflight("POST", 400) 59 statusAfterPreflight("POST", 401) 60 statusAfterPreflight("POST", 404) 61 62 statusAfterPreflight("PUT", 699) 63 statusAfterPreflight("CHICKEN", 501) 64 65 </script>