Je sais que c'est un sujet populaire, mais je n'ai pas encore trouvé de réponse complètement complète. J'essaie de créer un moyen simple pour nos «clients» de placer une carte Google sur leur site Web, qui trace la position de nos clients (ou d'un sous-ensemble) sur la carte. Les clients sont dans une base de données MySQL qui est transformée en XML à la volée par un script PHP (selon l'exemple de Google). Cela fonctionne très bien sur mon site Web, mais lorsque je l'essaie sur un autre site Web, xmlHTTPRequest n'est pas autorisé à regarder le PHP comme sur un autre domaine.Même politique d'origine - JavaScript appelant PHP
Je peux contourner cela en écrivant un autre fichier PHP sur l'autre domaine qui lit simplement le fichier PHP sur le domaine d'origine. Mais tous nos clients n'auront pas PHP sur leurs serveurs. Est-il possible que je puisse retourner les résultats XML de notre base de données en utilisant JavaScript?
Quelques points:
Le JavaScript qui rend le XMLHttpRequest se trouve toujours sur notre serveur - nos clients un lien vers elle d'une balise de script. Je pensais que cela pourrait être suffisant, mais l'origine (selon Chrome, de toute façon) est toujours considéré comme domaine # 2
C'est génial: si j'utilise une référence absolue dans le xmlHTTPRequest (par exemple request.open ('GET', 'http://mydomain.com/api/foo.php', true)) alors il échouera dans IE, mais si j'utilise une référence relative ('/api/foo.php') ça marchera .
Je ne sais pas assez à ce sujet, mais pourrais-je utiliser JSON? J'ai vu: 'script src = "http: //..../someData.js? Callback = some_func"' mais je ne sais pas comment, je ferais ressembler 'someData.js' comme JSON? (Je pense beaucoup en termes de fonctions, ce qui est probablement incorrect?). J'ai essayé d'ajouter: header ("Access-Control-Allow-Origin: *"); au sommet du PHP qui sort le XML, mais ça ne fait pas grand-chose que je puisse dire!
Si j'utilise un wrapper PHP sur le serveur du client, quel est l'avantage d'utiliser une requête cURL, plutôt que simple file_get_contents ou fopen?
Désolé, beaucoup de questions, mais des instructions y seraient grandement appréciées.
merci Massive,
Mat
# 3 est appelé JSONP, et qui ressemble à ce que vous avez besoin. – StriplingWarrior