2010-09-19 5 views
0

Je souhaite effectuer une requête HTTP afin de recevoir le contenu de la page d'accueil de l'utilisateur connecté de facebook.com dans mon application Facebook. L'application est chargée à l'intérieur d'un iframe. J'utilise le mod Ajax inter-domaines pour jQuery fait par James Padolsey: http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/. Ce mod fonctionne très bien pour des pages comme google.com comme présenté dans les exemples.Requêtes interdomaines avec jQuery ne fonctionne pas dans Facebook App

Malheureusement, si je tente quelque chose comme:

$('#container').load('http://www.facebook.com/');

Je reçois aucun résultat et aucune erreur. En outre, si je tente:


$.ajax({ 
      type: 'POST', 
      url: 'http://www.facebook.com', 
      success: function(html){ 
       process(html); 
      }, 
      error: function(){ 
       debug("error"); 
      } 
     }); 

Je reçois une erreur dans la console Firebug qui dit: data.results[0] is undefined. Cette erreur est dans le mod Ajax de James Padolsey donc cela n'a rien à voir avec le code précédent que j'ai écrit dans mon script.

Des idées?

+0

Salut Benny, et bienvenue à SO. J'ai un problème similaire il y a quelques semaines. http://stackoverflow.com/questions/3457778/same-origin-policy-violated –

+0

Salut Henrik, merci pour le lien. J'ai essayé votre suggestion mais quand je clique sur le bouton j'obtiens "Échoué 0" dans ma boîte d'alerte. – Benny

Répondre

0

JSON ne fonctionne pas sur plusieurs domaines. Vous devez utiliser JSONP ou mieux encore dans l'appel getJSON utilisez le "callback =?" paramètre.

Par exemple

$.getJSON("https://graph.facebook.com/me/friends?callback=?&access_token="+fbtoken, function(rtnmsg) { 

} 

Où fbtoken est votre jeton d'accès et rtnmsg est l'objet de retour. Celui-ci fonctionne pour moi.

Salutations

+0

Cette fonction peut fonctionner pour accéder à l'API graphique, mais ce n'est pas ce que je veux. Je veux strictement analyser la page d'accueil Facebook de l'utilisateur qui est connecté. En utilisant l'appel getJSON qui se traduirait par quelque chose comme ceci: $.getJSON("http://www.facebook.com/", function(rtnmsg) {...} Si vous essayez ceci à partir d'une application facebook, vous verrez que rtnmsg est indéfini – Benny