access-control-preflight-async-method-denied.htm (1260B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>Async request denied at preflight because of non-CORS-safelisted method</title> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/common/get-host-info.sub.js"></script> 8 <script src="/common/utils.js"></script> 9 </head> 10 <body> 11 <script type="text/javascript"> 12 const uuid = token(); 13 const url = get_host_info().HTTP_REMOTE_ORIGIN + 14 "/xhr/resources/access-control-preflight-denied.py?token=" + uuid; 15 16 async_test((test) => { 17 let xhr = new XMLHttpRequest; 18 xhr.open("GET", url + "&command=reset", false); 19 xhr.send(); 20 21 xhr = new XMLHttpRequest; 22 xhr.open("DELETE", url + "&command=method", true); 23 24 xhr.onload = test.unreached_func( 25 "Cross-domain access with non-CORS-safelisted method allowed without throwing exception"); 26 27 xhr.onerror = test.step_func_done(() => { 28 xhr = new XMLHttpRequest; 29 xhr.open("GET", url + "&command=complete", false); 30 xhr.send(); 31 assert_equals(xhr.responseText, "Request successfully blocked."); 32 }); 33 34 xhr.send(); 35 }, "Async request denied at preflight"); 36 </script> 37 </body> 38 </html>