| <!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> |