2010-12-02 7 views
0

J'ai un problème très étrange. Je fais un appel ajax-assez standard avec jQuery, mais il refuse de travailler avec Internet Explorer 7.jQuery.get() fonctionne sur IE, mais jQuery.post() n'a pas

Le code est le suivant:

$.ajax({ 
    url: updateUrl, 
    cache: false, 
    type: 'post', 
    data: params, 
    success: function(data){ 
    handleResponse(data); 
    } 
}); 

La partie étrange est que, si je change le type pour 'obtenir' tout fonctionne correctement. J'ai déterminé que avec 'post' IE n'envoie rien du tout au serveur.

Je définis également toutes sortes d'en-têtes pour empêcher la mise en cache, mais elles n'ont aucun effet sur le problème de 'post'.

+0

cela fonctionne-t-il dans d'autres navigateurs? – Emmett

+0

Avez-vous utilisé Fiddler pour vérifier si IE envoie correctement le POST et à quoi répond le serveur? Cela peut être un problème sur le serveur ... –

+0

@MikeRuhlin Je vais essayer ça. Merci pour le conseil. –

Répondre

0

J'ai finalement été capable de suivre ce problème. En fin de compte, le problème était un conflit entre Sarissa et jQuery. Une solution peut être trouvée à partir de here. Après le correctif proposé, IE a travaillé à nouveau.

L'autre problème était également l'IE7 dans CrossOver. Il semble être globalement défectueux, car même avec le correctif, il a refusé de fonctionner correctement.

0

Juste pour que vous le savez, selon le docs pour $.post() (ce qui est un raccourci pour l'appel AJAX):

Les pages récupérées avec POST ne sont jamais mises en cache

Essayez de fixer un type de données pour les données renvoyées et ajouter un gestionnaire d'erreurs qui alertera toutes les erreurs:

$.ajax({ 
    url: updateUrl, 
    cache: false, 
    type: 'post', 
    data: params, 
    success: function(data){ 
    handleResponse(data); 
    }, 
    error: function(xhr,textStatus){ 
    alert(textStatus); 
    } 
}); 

En outre, Êtes-vous sûr que la page sur laquelle elle est postée reçoit des variables POST et pas seulement des variables GET?

+0

Également, avez-vous essayé de définir 'type: 'post',' à 'type: 'POST','? Peut-être que cela fait une différence pour IE7. –

+0

Malheureusement, ces changements n'ont aucune différence. –

+0

@ M.L .: L'erreur a-t-elle alerté? Y a-t-il des erreurs dans IE? –

Questions connexes