2010-12-15 125 views
1

J'ai implémenté un service REST, que j'appelle depuis une application javascript sur un domaine différent.Firefox 3 CORS XMLHTTPRequest ne semble pas fonctionner

Je tente de faire une requête GET et de définir l'en-tête Authorization: avec un schéma d'authentification personnalisé. Étant donné que je définis un en-tête personnalisé, Firefox commencera par une demande OPTIONS de contrôle en amont. Cette demande ressemble à ceci (simplifié):

OPTIONS /v1/articles HTTP/1.1 
Host: example.org 
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13 FirePHP/0.5 
Origin: http://example.com 
Access-Control-Request-Method: GET 
Access-Control-Request-Headers: authorization 

Ma réponse est la suivante:

HTTP/1.1 200 OK 
Date: Wed, 15 Dec 2010 16:36:47 GMT 
Server: Apache/2.2.9 (Debian) PHP/5.3.3-0.dotdeb.1 with Suhosin-Patch mod_vhost_hash_alias/1.0 
X-Powered-By: PHP/5.3.3-0.dotdeb.1 
Access-Control-Allow-Origin: http://example.com 
Access-Control-Request-Method: GET,POST,PUT,DELETE,HEAD,OPTIONS 
Access-Control-Request-Headers: Authorization, X-Authorization 
Content-Length: 2 
Content-Type: application/json 

Après cela, la demande GET réelle est tout simplement pas effectué. Je suis inquiet que j'ai fait une erreur dans ma réponse, mais je ne peux pas sembler l'apercevoir.

L'autre problème est que je n'ai trouvé aucun moyen d'obtenir un message d'erreur détaillé. Comme vous pouvez le voir, j'ai aussi essayé l'autorisation X au lieu de l'autorisation.

Mes questions:

Y at-il quelque chose de mal avec ma réponse? Comment puis-je trouver plus de détails sur le problème?

Merci!

Répondre

2

J'avais besoin d'un nouveau regard à ce sujet. Le lendemain matin, j'ai réalisé que les en-têtes corrects sont:

Access-Control-Allow-Methods: GET,POST,PUT,DELETE,HEAD,OPTIONS 
Access-Control-Allow-Headers: Authorization, X-Authorization 
+0

Étrange. J'ai exactement le même problème (pas de demande GET), mais je * suis * en utilisant les en-têtes correct ... – Thorarin