Question

Sur un site Web que je suis la construction, lorsque vous vous connectez (parce que la base de données se trouve sur un autre serveur), J'utilise padding JSON pour vérifier si l'utilisateur comme les bonnes références.

Il fonctionne parfaitement (IE7, IE8 & FF), jusqu'à ce que je l'ai essayé sur Chrome, Safari et Opéra où il est un désastre complet.

    $.ajax({
  type: "GET",
  dataType: "jsonp",
  url: "http://someurl.com",
  data: aRequestData,
  cache: false,
  error: function (XMLHttpRequest, textStatus, errorThrown) {
    // typically only one of textStatus or errorThrown
    // will have info
    alert("Error occured textStatus=" + textStatus + " errorThrown=" + errorThrown);
  },
  success: function(data) {
    alert('success');    
  }
});

Plaine et simple et cela fonctionne dans la fenêtre du navigateur, mais, à ma grande surprise, il ne fonctionne pas en chrome, safari et opéra, n'a jamais eu à l'alerte de succès.

Quelqu'un sait comment résoudre ce problème?

Merci.

Était-ce utile?

La solution 2

Le problème a été laissé sur la tête de page html, dans un "Thickbox" (plugin jQuery Thickbox) où l'appel ajax a été fait!

Firefox ou IE ne me dérange pas les en-têtes répétés dans ce cas, mais le moteur WebKit fait!

Je viens de supprimer les en-têtes supplémentaires, et tout était de retour sur les pistes.

Merci à tous!

Autres conseils

Avez-vous essayé d'utiliser la construction dans les outils de développement pour Safari et Chrome pour vérifier si vous obtenez une réponse avec le code d'état HTTP 200 de votre demande?

Dans Chrome, vous pouvez accéder à ces outils dans le menu « Affichage », choisissez l'onglet 'Ressources pour voir toutes les demandes. Je pense que vous aurez besoin d'activer ces outils dans un certain réglage lorsque vous utilisez Safari. text alt

Vous pouvez également essayer de créer la version sans jQuery pour exclure les erreurs commises là-bas, si vous ne recevez pas le statut 200 de vos appels, je pense que jQuery échouera sans faire appel à toutes les fonctions d'erreur, la documentation pour l'utilisation JSONP avec jQuery n'est pas très concise en ce qui concerne la gestion des erreurs.

Créez un fichier HTML avec une version modifiée du contenu suivant et le charger dans votre navigateur:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <title />
      <script type="text/javascript">
         function ws_results(obj) {
             alert(obj);
         }
      </script>
      <script type="text/javascript" src="http://someurl.com?foo=bar&amp;callback=ws_results" />
   </head>
   <body />
</html>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top