2010-10-17 11 views
1

J'utilise jsonp pour publier un formulaire dans un script distant. le code est quelque chose comme ceci:Les cookies fonctionnent-ils lors de l'accès à un script distant avec jsonp?

 
$.ajax({ 
    type: "get", 
    datatype: "jsonp", 
    url: 'http://other-domain.com/process_form.php?param1=x&' + $("#gs_vote_form").serialize(), 
    data: $("#gs_vote_form").serialize(), 
    success: function(data) { 
    alert('form submitted successfully'); 
    } 
    }); 

Le formulaire est soumis, mais ... Le process_form.php ignore complètement les données de cookie qui appartiennent à la « autre domaine » (ou ne lit pas les écrire), qui est le problème pour moi.

S'il vous plaît noter, je ne me soucie pas des données retournées, j'utilise jsonp seulement pour soumettre le formulaire d'un site à l'autre en silence, sans réellement transférer l'utilisateur à l'autre site.

Y a-t-il une solution de contournement pour cela? Quelque chose qui fera fonctionner les cookies?

Répondre

0

Quel navigateur?

Les cookies sur other-domain seront des «cookies tiers», et donc dans IE soumis à des contrôles plus stricts, comme configuré dans l'onglet paramètres de «confidentialité». Cela signifie que, pour les paramètres par défaut d'Internet Explorer, other-domain ne pourra pas utiliser de cookies à moins de définir un P3P policy. (Les autres navigateurs n'utilisent P3P que beaucoup considèrent un peu inutile Charte de Liar.)

'?param1=x;' + $("#gs_vote_form").serialize(), 

Vraiment, êtes-vous sûr other-domain permet l'utilisation de ; comme séparateur de paramètre alternatif à &? Malheureusement, PHP ne supporte pas cela à moins de explicitly reconfigured pour le faire.

+0

Je suis en train d'essayer avec Firefox, mais à la fin, je veux que cela fonctionne sur tous les navigateurs ... (remplacé par &) – fractalbit