JSONP ne tire pas sur l’iPad

Après avoir tout essayé, je suis arrivé à la conclusion que c’était un problème avec IPad Safari. Cela fonctionne dans FF, IE, Chrome et Safari sur MacBook. Ci-dessous, mon code muet. J’ai 2 appels JSONP distincts, le premier fonctionne dans tous les navigateurs, y compris IPad. Cela appelle simplement une fonction basée sur un événement de flou

$('#gender').blur(function() { reTarget(); }); function reTarget() { $.getJSON("http://host.com/Jsonpgm?jsoncallback=?", function() { } ); } 

Ci-dessous est l’endroit où les choses se cassent. Sur la même page que le code ci-dessus se trouve ce qui suit, qui appelle une fonction basée sur un clic sur le bouton d’envoi.

 $(':submit').bind('click', function(event) { if (checkThis() == false) { return false; }; }); $('form').bind('submit', function(event) { if (checkThis() == false) { return false; }; }); function checkThis() { $.getJSON("http://host.com/Jsonpgm.aspx?jsoncallback=?", function() { } ); } 

Ce code ne se déclenchera pas. J’ai mis des alertes juste avant et ils tirent. Je regarde les journaux Web et il n’y a pas d’entrée pour cet appel json. Je voudrais prendre des suggestions à ce sujet. À ce stade, je crains que ce ne soit un problème de lancer jsonp à partir d’un événement submit.

Ce pourrait être les sélecteurs. Essayez de sélectionner le formulaire et envoyez le bouton par ID pour vous en assurer.

Je m’excuse de ne pas être clair ici. La fonction checkThis () se déclenche. C’est que le getJSON n’est pas. Si j’utilise le code suivant pour la fonction, l’alerte est déclenchée mais il n’y a pas de journal de l’appel getJSON. Encore une fois, cela fonctionne dans tous les autres navigateurs, y compris Safari sur les ordinateurs portables Apple.

function checkThis () {alert (‘à ce stade’); $ .getJSON (“http://host.com/Jsonpgm.aspx?jsoncallback=?”, function () {}); }

Voici le code le plus simple. Sur un iPad, lorsque je sélectionne un sexe, je reçois l’alerte de «nouveau ciblage» et je vois une entrée dans le journal Web. Lorsque je clique sur Soumettre, je vois l’alerte “Soumettre”, mais le journal Web ne contient aucune entrée. Encore une fois, tout fonctionne bien dans tous les autres navigateurs.

 
First Name:
Gender:

Ceci a été résolu. Après beaucoup de recherches sur Google et sur les forums, il apparut que la suppression de la page se produisait avant le lancement de l’appel json. J’ai changé le code pour arrêter la propagation du clic sur le bouton, déclencher l’appel getJson, puis dans la fonction de rappel déclencher le clic du bouton. Cela a résolu le problème. Ce qui ne fonctionnait pas, c’était d’établir un appel synchrone.