JSONP acquiert JSON à partir du protocole HTTPS avec JQuery

J'essaie d'acquérir un JSON qui est envoyé depuis un site https sécurisé,

Le client espérait ne pas utiliser de langages côté serveur (le tout dans Javascript)

J'ai lu que je dois utiliser JSONP pour charger un JSON d'un site sécurisé, en utilisant la fonction .ajax de Jquery.

Ma première question serait de savoir quel format dois-je définir ce JSONP? À l'heure actuelle, mon code ressemble à ceci:

html =new Object(); html = $.ajax({ url: "https://my-secure.net", async: false, dataType: 'jsonp' }).responseText; //alert(html); alert("myObject is " + html.toSource()); console.log(html); 

Cependant, rien n'est alerté, ni rien n'a été enregistré dans Firebug. Fondamentalement, je veux pouvoir manipuler les données JSON. Je vois les données dans la réponse sous Firebug, mais il y a une erreur qui indique "étiquette non valide". J'ai lu que, pour résoudre ce problème, vous l'installez dans la fonction eval avec des parathes supplémentaires, mais cela ne fonctionne pas.

Http://b.lesseverything.com/2007/10/25/invalid-label-error-when-eval-json

J'ai également une erreur qui indique que ma demande $ .ajax est "indéfinie", mais je peux voir les données dans la réponse. Je soupçonne que cela a quelque chose à voir avec la façon dont je saisis les données initiales. Tout avis sera le bienvenu. Je vous remercie!

Vous pouvez utiliser getJSON par exemple

 $.getJSON('ajax/test.json', function(data) { $('.result').html('<p>' + data.foo + '</p>' + '<p>' + data.baz[1] + '</p>'); }); 

Vérifiez la documentation complète de getJSON http://api.jquery.com/jQuery.getJSON/

MODIFIER

J'ai eu tort … l'utilisation de Jquery.ajax causera un problème entre les navigateurs, mais pas avec Jquery.getJSON

http://docs.jquery.com/Release:jQuery_1.2/Ajax#Cross-Domain_getJSON_.28using_JSONP.29

Voici un exemple de cross-domain get JSON

MODIFIER

Firefox a un problème avec HTTPS, car je sais qu'il sera corrigé si vous envoyez votre demande comme celle-ci

 $.getJSON('ajax/test.json',{}, function(data) { $('.result').html('<p>' + data.foo + '</p>' + '<p>' + data.baz[1] + '</p>'); }); 

Source : AJAX https POST demandes utilisant jquery fail dans Firefox

J'espère que cela t'aides