Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
Niet. afaik komt een OPTIONS request niet verder dan de webserver. Wanneer je hier iets mee wilt zul je dit in Apache / ISS / welke webserver je ook maar gebruikt af moeten handelen.Weet iemand hoe ik in PHP een OPTIONS request afvang/beantwoord?
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
BVJuup schreef op maandag 17 mei 2010 @ 21:05:
Om netjes CrossDomain AJAX te doen, gebruik ik CORS en daarbij probeert Firefox eerst een OPTIONS request te doen op een URL die ik met een XMLHttpRequest wil ophalen.
Hierbij geeft firefox de error: "HTTP Request <url> returned status 0".
Weet iemand hoe ik in PHP een OPTIONS request afvang/beantwoord?
1
2
3
4
5
| <?php if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { // Whatever je moet teruggeven als response... echo 'options...'; } |
1
2
3
4
5
6
| $ telnet localhost 80 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. OPTIONS /~rutgerw/method.php options... |
Dus je kan $_SERVER['REQUEST_METHOD'] bekijken.
Anders zou ik van apache zo'n response moeten krijgen:
1
2
3
| Content-Length: 0 Allow: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, PATCH, PROPFIND, PROPPATCH, MKCOL, COPY, MOVE, LOCK, UNLOCK, TRACE |
Maar hij geeft dit:
1
2
3
4
5
6
7
8
9
10
11
12
| Date: Mon, 17 May 2010 19:35:28 GMT Server: Apache/2.2.11 X-Powered-By: PHP/5.2.9 Access-Control-Allow-Origin: http://mijndomain.com Cache-Control: no-store, no-cache, must-revalidate Last-Modified: Mon, 17 May 2010 18:51:03 GMT Expires: Mon, 17 May 2010 19:35:28 GMT Content-Length: 34 Content-Type: text/html;charset=utf-8 Set-Cookie: cookie Keep-Alive: timeout=15, max=10000 Connection: Keep-Alive |
Hij zegt dus dat de content-length 34 is maar volgens Firebug is er geen content.
[ Voor 8% gewijzigd door Juup op 17-05-2010 21:40 ]
Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.
Ja het werkt! (in telnet)rutgerw schreef op maandag 17 mei 2010 @ 21:36:
PHP:
1 2 3 4 5 <?php if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { // Whatever je moet teruggeven als response... echo 'options...'; }
Firefox geeft nog steeds dezelfde error
Ik zal eens kijken wat voor response hij eigenlijk verwacht.
Edit:
Eindelijk werkt het.
Als je xhr.withCredentials=true gebruikt (om het cookie meegestuurd te krijgen) moet de server response een extra header zetten:
1
| Access-Control-Allow-Credentials: true |
Dus in totaal moet je server op het OPTIONS request 5 headers zetten:
1
2
3
4
5
| header('Access-Control-Allow-Origin: http://mydomain.com'); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); header('Access-Control-Allow-Headers: X-XXXXX'); #wat er in de Access-Control-Request-Headers staat header('Access-Control-Allow-Max-Age: 1728000'); |
[ Voor 46% gewijzigd door Juup op 17-05-2010 22:40 . Reden: eindelijk werkend gekregen ]
Een wappie is iemand die gevallen is voor de (jarenlange) Russische desinformatiecampagnes.
Wantrouwen en confirmation bias doen de rest.