2009-08-30 8 views
0

Je travaille sur une petite application de chat qui utilise jQuery pour obtenir des informations à partir d'un fichier PHP. La sortie du fichier est un ensemble de données HTML.

Le script fonctionne très bien dans FF mais pas dans Internet (f *** ing) Explorer, lol. Le code ressemble à ceci:

$.get("index.php", {p: "chatData", type: "regular"}, function(data){ 
    startPoint = data.indexOf("|START-POINT|"); 
    endPoint = data.indexOf("|END-POINT|"); 
    dataReturn = data.substring(startPoint, endPoint); 
}); 

La chose est que je dois accéder à certaines variables de session dans mon fichier chatData.php. Par conséquent, j'appelle index.php avec p-varable, qui inclut chatData.php dans mon fichier index.php où les variables SESSION sont définies. Ce n'est peut-être pas la meilleure solution, mais je ne pouvais pas penser à un autre moyen d'accéder aux variables SESSION. En tous cas.

Mais quand je fais comme ceci, le callback contiendra tout le html de index.php, mais je ne veux que les données de chatData.php, donc j'ai mis ces start- et endPoints dans le code, donc il peut faire de la sous-chaîne et obtenir les données souhaitées de cette façon. Même chose ici, peut-être pas la meilleure solution ...

Mais maintenant le problème! Les données de rappel ne contiennent que le code HTML de index.php, il devrait être le index.php html + le chatData html ... Mais je pense que le problème réside dans cette inclusion index.php, parce que si j'appelle le fichier comme d'habitude , J'obtiendrai les données (comme je l'ai dit, j'ai aussi besoin des variables SESSION de index.php ...).

Alors, pourquoi cela ne fonctionne-t-il pas dans IE, mais très bien dans d'autres broswers comme FF?

EDIT: Le problème est résolu. Le problème était mes START-POINTS dans mon fichier php, ils étaient mal placés ... Désolé pour cette erreur de noobish. Merci quand même!

+1

Omg, pas IE à nouveau @ _ @ –

+0

Puisque c'est essentiellement ce que vava a dit, vous devriez choisir sa réponse au lieu de mettre un edit sur la question. – stevedbrown

Répondre

2

Avez-vous vérifié que index.php obtient les paramètres que vous lui avez envoyés et incluez votre autre fichier? Il semble que ce n'est pas le cas, le HTML ne peut pas disparaître comme par magie :) Peut-être que IE le définit comme $ _POST variables par opposition à Firefox qui le fait par $ _GET ou quelque chose.

0

IE met en cache les requêtes ajax par défaut. Vous pouvez résoudre ce à 2 façons:

  1. option Définir cache de jQuery.ajax()-false.
  2. Ajoutez une chaîne de requête avec un horodatage à l'URL.

Modifier: oh, vous avez déjà résolu le problème vous-même .. De toute façon espère que les informations ci-dessus est encore utile. Vous ne savez jamais avec IE dans le futur.