| <!doctype html> | |
| <title>XMLHttpRequest: send() - conditional cross-origin requests</title> | |
| <script src=/resources/testharness.js></script> | |
| <script src=/resources/testharnessreport.js></script> | |
| <script src=/cors/support.js?pipe=sub></script> | |
| <div id=log></div> | |
| <script> | |
| function request(withCORS, desc) { | |
| async_test(t => { | |
| const client = new XMLHttpRequest, | |
| identifier = Math.random(), | |
| cors = withCORS ? "&cors=yes" : "", | |
| url = CROSSDOMAIN + "resources/conditional.py?tag=" + identifier + cors | |
| client.onload = t.step_func(() => { | |
| assert_equals(client.status, 200) | |
| assert_equals(client.statusText, "OK") | |
| assert_equals(client.responseText, "MAYBE NOT") | |
| if(withCORS) { | |
| client.onload = t.step_func_done(() => { | |
| assert_equals(client.status, 304) | |
| assert_equals(client.statusText, "SUPERCOOL") | |
| assert_equals(client.responseText, "") | |
| }) | |
| } else { | |
| client.onload = null | |
| client.onerror = t.step_func_done(() => { | |
| assert_equals(client.status, 0) | |
| assert_equals(client.statusText, "") | |
| }) | |
| } | |
| client.open("GET", url) | |
| client.setRequestHeader("If-None-Match", identifier) | |
| client.send() | |
| }) | |
| client.open("GET", url) | |
| client.send() | |
| }, desc) | |
| } | |
| request(false, "304 without appropriate CORS header") | |
| request(true, "304 with appropriate CORS header") | |
| </script> |