2009-01-26 8 views
-1

J'ai un client js avec JQuery, cela appelle une page (GET HTTP) et définit le délai. Le but du timeout est: "faire quelque chose si le serveur ne répond pas". Si j'utilise le serveur Web Apache pour gérer une page, le délai d'expiration est effectif. Si j'utilise IIS 6.0, le délai d'expiration est "ignoré" et la page tente (de toute façon) la réponse du serveur. Ce est le script:Le délai JQuery ne s'exécute pas

// côté client

$.ajax({ 
    type: "GET", 
    url: "some.php", 
    data: "name=John&location=Boston", 
    timeout: 5000 
    success: function(msg){ 
     alert("Data Saved: " + msg); 
    }, 
    error: function(request, errorType, errorThrown){ 
     alert("opppsssss .... "); 
    } 
}); 

Je suppose que c'est un IIS..is droit? ou j'ai fait une erreur dans le code JQuery?

meilleurs regerds

Domenico

+0

Il vous manque un, après le délai –

+0

-1 pour utiliser Stack Overflow pour rechercher les erreurs de syntaxe. – Bombe

Répondre

1

Comme Paolo mentionné dans un commentaire, vous manque une virgule après la déclaration de délai d'attente. J'ai très récemment eu une situation où une virgule manquante dans une déclaration d'objet comme celle-ci provoquerait l'étouffement d'IE sur le script et ne l'exécuterait pas correctement (alors que firefox n'a eu aucun problème à l'exécuter). Cela n'expliquerait pas pourquoi les différents serveurs causeraient un comportement différent, mais il serait probablement utile de corriger cela en premier et de retester, car le comportement pourrait changer et pourrait être plus facile à déboguer.

+0

Je vais appuyer ceci - j'ai vu plusieurs fois que firefox interprète généreusement des objets javascript déclarés de cette manière où IE va s'étouffer avec la virgule manquante. Que cela cause ou non le problème dont il s'inquiète, c'est un problème. – Clyde

0

Merci pour la réponse, je complète la question :)

Le code du serveur est:

// back-end some.php

<?

// simuler la tâche à long

sommeil (10); // sommeil 10 secondes

// Envoyer la réponse

echo "certaines données de test";

? >

Désolé, l'erreur de virgule est une ma coupe & erreur de pâte ..

Le problème c'est quand délai d'attente est terminée, l'erreur de dialogue apparaît pas parce que la connexion du serveur ne soit pas interrompue par temporisation, donc le serveur (lentement) répond cependant.

Avez-vous une idée parce que la connexion du serveur n'est pas interrompue?

+0

Pour référence future, il est préférable que vous éditiez votre question pour ajouter des détails, pas poster une réponse avec les détails supplémentaires. Cela encombre un peu les réponses. – Herms

Questions connexes