Ayant des problèmes avec ce que je pensais être un plugin jQuery relativement simple ...
Le plugin devrait récupérer les données d'un script php via ajax pour ajouter des options à a <select>
. La requête ajax est assez générique:
$.ajax({
url: o.url,
type: 'post',
contentType: "application/x-www-form-urlencoded",
data: '{"method":"getStates", "program":"EXPLORE"}',
success: function (data, status) {
console.log("Success!!");
console.log(data);
console.log(status);
},
error: function (xhr, desc, err) {
console.log(xhr);
console.log("Desc: " + desc + "\nErr:" + err);
}
});
Cela semble bien fonctionner dans Safari. Dans Firefox 3.5, le REQUEST_TYPE
sur le serveur est toujours «OPTIONS» et les données $ _POST n'apparaissent pas. Apache enregistre la demande sous le type 'OPTIONS':
::1 - - [08/Jul/2009:11:43:27 -0500] "OPTIONS sitecodes.php HTTP/1.1" 200 46
Pourquoi cet appel ajax fonctionnerait-il dans Safari, mais pas Firefox, et comment le corriger pour Firefox?
En-têtes de réponse Date: mer., 08 juil. 2009 21:22:17 GMT Serveur: Apache / 2.0.59 (Unix) PHP / 5.2.6 DAV / 2 X-Powered-By: PHP / 5.2.6 Contenu-Longueur 46 Délai d'expiration Keep-Alive = 15, max = 100 Connexion persistante Type de contenu texte / html En-têtes de demande Formulaire de commande de l'hôte: 8888 User-Agent Mozilla / 5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv: 1.9.1) Gecko / 20090624 Firefox / 3.5 Accepter texte / html, application / xhtml + xml, application / xml; q = 0,9, * / *; q = 0,8 Accept-Language en-us, en; q = 0,5 Accepter-encoder gzip, dégonfler Accept-Charset ISO-8859-1, utf-8; q = 0,7, *; q = 0,7 Keep-Alive 300 Connexion en vie Origine http://ux.inetu.act.org POST-Control-Request-Method En-têtes de demande de contrôle d'accès x demandés avec
Voici une image de la sortie Firebug: