11
votes

Comment activer la post-ing de domaine croisé dans PHP?

Je lie d'envoyer des données de poste d'un site à un autre (les deux sites ont été développés par nous). Le problème est que les variables de poste ne sont pas disponibles si la page est demandée dans un autre domaine. Même si je le teste localement, mais spécifiez l'URL complète, les données postes ont disparu.

Ainsi, cela fonctionnera: P>

<html>
<head>
    <title></title>
</head>
<body>
    <form method="post" action="http://example.com/test.php">
        <input type="text" name="request" value="" id="" />
        <input type="submit" value="" id="" />
    </form>
</body>
</html>


6 commentaires

Cela devrait fonctionner. Pourriez-vous poster tout le formulaire?


Voir ci-dessous (seule l'URL a été modifiée pour protéger l'innocent :) completurl.com/test.php ">


@COEN - J'ai mis à jour votre question pour ajouter votre commentaire - essayez de modifier votre question la prochaine fois au lieu de publier des mises à jour des commentaires.


Dans votre forme actuelle, avez-vous http au début de l'URL dans l'attribut action de la balise de formulaire? Une petite typo comme ça pourrait suffire à causer des problèmes. Il devrait ressembler à: Action = " complotururl.com/test.php "


@Stephen - c'est là, il a été filtré dans le commentaire, mais je le remette dans la question initiale


Ajouter http: // = action = " completurl.com/test.php "


4 Réponses :


19
votes

Qu'est-ce que vous avez devus de fonctionner - les formulaires fins sont venus avant la même politique d'origine - vous êtes autorisé à soumettre à différents domaines.

Si je devais endommager une supposition, je dirais qu'il y a une redirection de 301 ou 302 d'y arriver en quelque sorte? Suivez les en-têtes HTTP avec Firebug par exemple pour être sûr.


2 commentaires

Il y avait en effet une redirection; de http à https


Y a-t-il une solution pour cela?



2
votes

Comme d'autres l'ont dit, il ne devrait y avoir aucun problème. Je suggérerais de remplacer votre script test.php avec quelque chose de simple, comme celui-ci xxx

Vous devriez trouver cela fonctionne, ce qui signifie que le blâme est quelque part dans le "vrai" script ...


1 commentaires

C'est exactement ce que j'ai fait et comment j'ai vérifié que les variables de poste ne manquent que dans 1 des 2 cas.



1
votes

Peut-être aussi un orthone:

Si vous postez sur domain.com, assurez-vous qu'il n'est pas redirigé sur www.domain.com. La redirection ne prend pas en compte les variables de poste, seulement getvariables.

S'il est redirigé vers le www.domain.com, ajoutez le www. Dans votre post-action


0 commentaires

0
votes

Merci. J'ai aussi découvert que la redirection sur www et https bloquait les performances de ma demande de $ _Post. En modifiant mon action pour inclure https: // www . J'ai corrigé mon problème. Merci


0 commentaires