2009-12-11 8 views
2

Je dois écrire un gadget google qui lit les flux de groupes google. Le problème est que je fais un appel ajax pour récupérer les flux et que notre domaine google apps est protégé par CAS (service d'authentification central). Donc, je reçois une mauvaise demande 400 sur l'appel.ajax appel à travers

Je suppose que le navigateur n'envoie pas le cookie lors d'un appel ajax. Comment puis-je m'assurer que le cookie est également envoyé avec l'appel ajax? OU Si ce n'est pas supposé être le problème, que dois-je faire?

+0

Quelqu'un a-t-il trouvé une réponse? J'ai la même question. –

Répondre

1

Si vous effectuez un appel AJAX plain-vanilla (avec jQuery, au moins), la demande échouera si le domaine et le sous-domaine ne correspondent pas. Autrement dit, si vous appelez de app.mydomain.com à cas.mydomain.com, la demande ne fonctionnera pas.

Dans my testing, le navigateur envoie les cookies correctement, comme vous pouvez vous y attendre, même pour les appels AJAX.

Assurez-vous également que vous utilisez le même protocole (HTTP ou HTTPS) aux deux extrémités de l'appel (l'application et le serveur CAS).

Si vous utilisez Firebug dans Firefox, vous devriez voir les cookies envoyés avec la demande. S'ils ne se présentent pas là-bas, il se passera probablement autre chose que vous devrez déterrer.

Voici a similar question qui peut être utile.

0

La liste de messages JASIG CAS décrit l'utilisation d'un JSESSIONID pour surmonter les restrictions d'appels ajax interdomaines. J'ai un similar question demandant s'il y a d'autres approches.

0
 $.ajax({ 
      type: 'post', 
      dataType: 'script', 
      url:'/some url', 
      data:{}, 
      beforeSend: function(xhr) { 
      xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content')); 
      } 

J'ai un problème comme celui-ci pensant que ČAS ne fonctionne pas avec ajax, mais je trouve que dans des rails 3 attribut de contenu doit être envoyé pour les demandes post

mai b vous êtes face à la même chose. J'ai d'abord partagé ce qui m'a aidé à sortir.