Question

J'ai un plugin jQuery existant qui fait beaucoup d'appels AJAX (la plupart du temps JSON). Je me demande ce qui est le plus rapide pour lui permettre de faire intersite appelle à savoir la .get et $ URL .post $ ne sera pas du même domaine.

Je l'ai entendu parler de JSONP, mais je me demandais si quelqu'un pouvait me donner un exemple concret d'aller sur l'ensemble du processus. Je veux faire des changements minimes, si possible, à mon script. Dois-je utiliser un proxy.php de toutes sortes?

Merci pour votre temps.

Était-ce utile?

La solution

JSONP vous permettra de faire des appels intersites. Voir docs jQuery sur cette question.

Le concept est simple: au lieu de faire un appel normal Ajax, jQuery ajoutera une étiquette de <script> à votre <head>. Pour que cela fonctionne, vos données JSON doit être enveloppé dans un appel de fonction.

Votre serveur a besoin d'envoyer des informations de telle manière (par exemple PHP):

$json = json_encode($data);
echo $_GET['jsonp_callback'] . '(' . $json . ');';

Ensuite, vous pouvez utiliser jQuery pour chercher cette information:

$.ajax({
  dataType: 'jsonp',
  jsonp: 'jsonp_callback',
  url: 'http://myotherserver.com/getdata',
  success: function () {
    // do stuff
  },
});

Plus d'informations sont disponibles ici: Qu'est-ce JSONP ?

Autres conseils

Si vous avez le contrôle sur le domaine distant ou le domaine distant a une crossdomain. xml vous pouvez déposer dans une bibliothèque comme flXHR conjointement avec son plugin jQuery

Vous pouvez également utiliser CORS au lieu de JSONP, travaille avec ff, chrome, safari. CORS est moins gênant pour l'installation et ne nécessite qu'un filtre côté serveur.

S'il vous plaît passer par ce article.Well expliqué et similaires. Seule contrainte IE ne supporte pas et les anciennes versions de FF, le chrome a aussi quelques problèmes.

http: //techblog.constantcontact .com / logiciel / développement à l'aide-CORS-pour-cross-domain-ajax-requests /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top