J'utilise le code suivant pour obtenir des données JSON:Linux Ajax (Mootools Request.JSON) erreur en-tête
var request = new Request.JSON(
{
'url': sourceURI,
'onSuccess': onPageData
}
);
request.get();
Request.JSON est une classe de Mootools (une librairie javascript). Mais sur linux (ubuntu sur firefox 3.5 et Chrome) la requête échoue systématiquement. J'ai donc essayé d'afficher la requête http que l'ajax envoie. (j'ai utilisé netcat pour l'afficher)
La demande est comme ceci:
OPTIONS /the+url HTTP/1.1
Host: example.com
Connection: keep-alive
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.3 (KHTML, like Gecko) Chrome/4.0.226.0 Safari/532.3
Referer: http://example.com/ref...
Access-Control-Request-Method: GET
Origin: http://example.com
Access-Control-Request-Headers: X-Request, X-Requested-With, Accept
Accept: */*
Accept-Encoding: gzip,deflate
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
La requête HTTP (première ligne) n'est pas comment il devrait être:
OPTIONS /the+url HTTP/1.1
Il devrait être :
GET /the+url HTTP/1.1
est-ce que quelqu'un sait pourquoi ce problème et comment le résoudre?
Edit:
La demande ajax obtient le résultat suivant de mon serveur Apache:
HTTP/1.1 200 OK
Date: Fri, 23 Apr 2010 08:09:41 GMT
Server: Apache/2.2.15 (Debian)
Allow: GET,HEAD,POST,OPTIONS
Content-Length: 0
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/plain
La longueur de contenu ne doit pas être nul. Mais je pense que le module Request.JSON devrait maintenant voir que la requête GET est disponible et peut l'utiliser?
Je l'ai réparé, merci! En apache j'ai activé les mod_headers et ajouté un fichier config dans conf.d qui dit: Header set Access-Control-Access-Origine "*" Cette ligne accepte toutes les requêtes de tous les domaines (quelque chose comme le fichier crossdomain.xml pour flash). – VDVLeon