<!DOCTYPE html >
<meta charset=utf-8>
<title >CORS - simple requests</title >
<meta name=author title ="Odin Hørthe Omdal" href="mailto:odiho@opera.com" >
<script src=/resources/testharness.js></script >
<script src=/resources/testharnessreport.js></script >
<script src=support.js?pipe=sub ></script >
<script src=/common/utils.js></script >
<h1 >Simple requests</h1 >
<p>Simple requests shouldn't trigger preflight
<div id=log></div >
<script >
var test_c = 0;
function check_simple(method, headers)
{
test(function() {
var client = new XMLHttpRequest()
var uuid_token = token();
client.open(method, CROSSDOMAIN + 'resources/preflight.py?token='
+ uuid_token, false)
for (head in headers)
client.setRequestHeader(head , headers[head ])
client.send("data" )
assert_equals(client.getResponseHeader('content-type' ), "text/plain" )
if (method == 'HEAD' )
assert_equals(client.response, '' , 'response' )
else
assert_equals(client.response, 'NO' , 'response' )
client.open('GET' , 'resources/preflight.py?check&token='
+ uuid_token, false)
client.send("data" )
assert_equals(client.response, "0" , "Found preflight log" )
},
'No preflight ' + method + ' and ' + JSON.stringify(headers))
}
function check_simple_headers(headers) {
check_simple('GET' , headers)
check_simple('HEAD' , headers)
check_simple('POST' , headers)
}
check_simple_headers({'Accept' : 'test' })
check_simple_headers({'accept-language' : 'test' })
check_simple_headers({'CONTENT-language' : 'test' })
check_simple_headers({'Content-Type' : 'application/x-www-form-urlencoded' })
check_simple_headers({'content-type' : 'multipart/form-data' })
check_simple_headers({'content-type' : 'text/plain' })
check_simple_headers({
'accept' : 'test' ,
'accept-language' : 'test' ,
'content-language' : 'test' ,
'content-type' : 'text/plain; parameter=whatever'
})
check_simple('Get' , {'content-type' : 'text/plain; parameter=extra_bonus' })
check_simple('post' , {'content-type' : 'text/plain' })
/* Extra async test */
var simple_async = async_test("Check simple headers (async)" )
simple_async.step(function (){
var time = new Date().getTime(),
client = new XMLHttpRequest()
var uuid_token = token();
client.open('POST' , CROSSDOMAIN + 'resources/preflight.py?token='
+ uuid_token, true)
client.setRequestHeader('Accept' , 'jewelry' )
client.setRequestHeader('accept-language' , 'nn-NO,nn,en' )
client.setRequestHeader('content-type' , 'text/plain; parameter=extra' )
client.setRequestHeader('content-Language' , 'nn-NO' )
client.onload = simple_async.step_func(function() {
assert_equals(client.getResponseHeader('content-type' ), "text/plain" , 'content-type response header' )
assert_equals(client.response, 'NO' , 'response' )
simple_async.done()
})
client.onerror = simple_async.step_func(function () { assert_unreached('onerror' ) })
client.send()
})
</script >
Messung V0.5 C=92 H=90 G=90
¤ Dauer der Verarbeitung: 0.19 Sekunden
(vorverarbeitet)
¤
*© Formatika GbR, Deutschland