2010-08-11 4 views
0

j'ai seulement 2 ans d'expérience du développement web sous ma ceinture, afin que je puisse manquer quelque chose assez simple ....problèmes jQuery Ajax sur Mac

J'ai créé un fichier javascript lourd que je tombé dans l'en-tête de l'intranet de mon entreprise. Il utilise les appels jquery et ajax pour créer un messager similaire à facebook ou messenger de Gmail.

Lorsque la page se charge, toutes les 20 s, la div fixe le nombre de messages présents.

Cela fonctionne très bien sur Firefox et IE pour XP, Vista, Windows 7, Mac OS 10.4 (G4).

Sous Mac OS 10.4 (G5) et Mac OS 10.5 (Intel), il ne fonctionne pas comme prévu ...

Lorsque la page se charge, Firebug montre que les paramètres sont passés comme prévu et la réponse est renvoyé comme prévu, mais pour une raison quelconque, firebug affiche l'appel en rouge et bien sûr les modifications ne sont pas mises à jour. Voici le code:

function check_for_messages(){ 
       // Takes care of IE's caching 
     var iedumb= d.getDate().toString() + d.getHours().toString() + d.getMinutes().toString() + d.getMilliseconds().toString(); 

       // id is the user's id, page returns # of messages 
     $.ajax({ 
      dataType: 'html', 
      url: url+'check_messages.asp?id='+$('#messenger-user-id').val()+'&iedumb='+iedumb, 
      success: function(data) { 
       if(parseInt(data) >= 0) 
        $('#messenger-new-messages').text("("+data+")");    
      } 
     }); 

     d = new Date(); 
     timer = setTimeout(check_for_messages, mil_seconds); 
} 

Selon firebug, les paramètres et la réponse semblent bien, mais cela ne semble toujours pas fonctionner. J'ai aussi essayé Safari, qui a donné les mêmes résultats. Je soupçonne que cela a à voir avec les préférences des utilisateurs, mais je ne suis pas sûr. Ça fait deux jours et je n'ai plus d'idées. Toutes les suggestions seraient très appréciées.

Répondre

1

J'ai comparé les données d'en-tête de requête entre navigateurs et j'ai remarqué que le 'Referrer' différait. Sur le navigateur de travail, le référent était http://ourintranetsite.com. Sur le navigateur qui n'a pas fonctionné, le référent était http: //. J'utilisais des chemins d'URL complets pour mes appels ajax donc j'ai fait ces parent et les référents étaient corrects et tout a bien fonctionné.

Avec cela, j'étais curieux de savoir pourquoi cela s'est produit? Depuis que j'avais "http: //", le navigateur pensait-il que j'essayais d'appeler une réponse d'un autre domaine, ce qui était un problème de sécurité et échouait? Merci

0

Voyez si vous obtenez des messages d'erreur différents (et peut-être plus révélateurs) en utilisant le menu développeur de Safari et le débogueur JS. Safari/Preferences/Advanced/

+0

Merci pour la réponse SongDogTech. Désolé, cela a pris tellement de temps pour que je réponde. En utilisant cela, j'ai été en mesure de comparer les données d'en-tête de la demande. – Chris

Questions connexes