2010-09-23 5 views
8

Je suis en train d'acquérir une JSON qui est envoyé à partir d'un site sécurisé https,JSONP fait l'acquisition de JSON protocole HTTPS avec JQuery

Le client esperait ne pas utiliser toutes les langues côté serveur (le tout en Javascript)

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

Ma première question serait de quel format ai-je besoin pour configurer ce JSONP? En ce moment, 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 quoi que ce soit être connecté Firebug. Fondamentalement, je veux être en mesure de manipuler les données JSON. Je vois les données dans la réponse sous Firebug, mais il y a une erreur qui dit "label invalide". J'ai lu que pour corriger cela, vous l'intégrez dans la fonction eval avec des parenthèses supplémentaires, mais cela ne fonctionne pas.

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

Je reçois aussi une erreur qui dit ma demande .ajax $ est « non défini » 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!

Répondre

5

vous pouvez utiliser getJSON par exemple

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

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

EDIT

je me trompais ... en utilisant Jquery.ajax causera problème cross-navigateur, 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 obtenir JSON

EDIT

Firefox a un problème avec HTTPS, comme je sais que ce sera résolu si vous envoyez votre demande comme celui-ci

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

Source: AJAX https POST requests using jquery fail in Firefox

Hope this helps

+0

Est-ce que cela fonctionne sur le protocole HTTPS? –

+0

oui, mais votre script et l'URL demandée doivent être dans le même domaine – trrrrrrm

+0

Et si ce n'est pas le cas, n'y a-t-il aucun moyen de le faire? Ma console et api sont dans deux domaines distincts, –