essayer d'utiliser ajax code>,
getjson code> et fonctionne comme celui-ci pour récupérer une URL externe à partir d'un ordinateur de développement local (non serveur). Existe-t-il un moyen de contourner la même politique d'origine, de sorte que je puisse tester localement, au lieu de devoir télécharger sur un serveur? P>
8 Réponses :
Il existe différentes façons de contourner cela, en fonction du navigateur que vous utilisez pour le développement. Par exemple: p>
Essayez ceci (Domaine Curl Ayax PHP Curl Ayax - par Google ): P>
http: //www.iacons. NET / ECRIT / 2007/08/02 / AJAX-Cross-Domain-proxy / P>
http: //www.phpfour. com / blog / 2008/03 / cross-domain-ajax-with-php / p>
http: // jQuery -howto.blogspot.com/2009/04/cross-Domaine-ajax-querying-with-jquery.html p>
Comme il s'agit d'une question de développement et non d'un problème d'utilisateur final / fonctionnalité, plutôt que de se concentrer sur l'AJAX à Cross Domaines, obtenez votre environnement de développement configuré comme un proxy pour récupérer les données les plus récentes des serveurs de production. C'est vraiment facile à faire. P>
Vous auriez besoin de configurer un serveur Web dans votre environnement de développement (s'il n'en a pas déjà un), puis configurez le serveur pour répondre à 404 demandes en récupérant puis faisant écho à des données de production. Vous pouvez configurer votre serveur de manière à ce que seuls les fichiers de données AJAX soient ramassés (sinon, il sera confondre de déboguer d'autres fichiers si les actifs de production commencent à apparaître sur vos pages de développement). Donc, si Si vous travaillez avec XML, je vous recommande de faire dupliquer les en-têtes HTTP dans le 404. Si votre processus 404 répond avec un http://dev.myserver.com/data/json/mydata.json code> est manquant, votre script 404 obtiendra
http://prod.myserver.com/data/json /mydata.json code> et l'écho au client. La bonne chose à propos de cette configuration est que vous pouvez utiliser des données simulées très facilement: si le fichier est présent dans votre environnement de développement, votre script Ajax obtiendra cela; Mais si vous effacez ou renommez ce fichier, vous aurez à la place des données de production. Cette fonctionnalité a été tellement utile que je ne peux pas le recommander suffisamment. p>
Type de contenu code> de
texte / html code >, vous n'obtiendrez aucun
ResponsifXML code> pour analyser. p>
Nous avions le même besoin lorsque nous développons notre application Web. Voici comment nous l'avons fait:
Le navigateur et le serveur communiquent uniquement via JSON.
Tout le HTML est rendu dans le navigateur en utilisant pur (notre moteur de modèle JS).
Le code de navigateur est développé localement comme ceci: p>
Nous ajoutons un paramètre code> hôte > dans l'URL de l'application: p> En production, le JSON est envoyé au serveur avec un poteau. Cela signifie que vous aurez besoin d'une coopération à partir du backend pour vous servir que JSON enveloppé dans une fonction de rappel comme: p> sauf une limitation de taille (vous Impossible d'envoyer un grand Json au serveur avec un get) ça marche comme une brise.
Mais ici la fonction chargée de l'appel AJAX réagira au paramètre code> code> et à créer un JSON injection (obtenez) à la place. p>
f2309892 code> est une fonction temporaire, avec un nom aléatoire, qui pointe vers la méthode qui gérera la réponse li>
json code> est le JSON que nous envoyons au serveur li>
ul>
Un autre avantage est que vous pouvez appeler tous les systèmes (développement et test) du même localhost. P> p>
c'est bien! Je remarque que vous n'avez pas cette utilisation locale de pure dans Beebole. COM / PURE / Documentation / What-Is-pur-and-pourquoi ... Aussi - pouvez-vous élargir vos mots un peu pour écrire un tutoriel dans beebole.com/pure/documentation ?
aussi (juste pour être sûr) - http: //localhost/app.html? hôte = test.beebole-apps.com code> est sur le client (où vous avez le client télécharger une application avec une sorte du serveur Web ou de l'URL gaspiller ...) et il appelle le
test.beebole-apps.com code> serveur?
Pure est une bibliothèque JS qui construit HTML des données JSON. Cela fonctionne sur le navigateur. Si vous téléchargez le fichier ZIP, il existe un répertoire appelé didacticiel avec quelques exemples.
Si vous avez un serveur Web localement pour développer, vous pouvez utiliser localhost / app.html ; Sinon, vous pouvez utiliser quelque chose comme Fichier: ///users/mic/app.html ou C: \ Test \ app.html; Et ensuite dans cette page, vous injectez la balise de script avec test.beebole-apps.com
Voici la réponse simple: chrome -disable-security
à partir du code source (chromé_switches.h): p> Je voulais utiliser jQuery. JS pour envoyer des appels Ajax à Google Apps Python Server exécuté sur le port 8080. Juste pour tester, je voulais exécuter le navigateur et le serveur sur la même machine. P> Je ne comprends pas toutes les nuances de sécurité , mais pour le développement temporaire, cela semble être une solution de contournement raisonnable. Tant que j'utilise uniquement Chrome pour tester ce drapeau, cela ne devrait pas être un problème. P> Voici toute la commande de Mac OS X: P> / applications / Google \ Chrome .app / Contenu / MacOS / Google \ Chrome --Disable-Sécurité Web P> P>
N'oubliez pas de tuer toutes les instances du processus de chrome avant de le faire ou cela ne fonctionnera pas.
J'ai eu ce problème, aussi, à l'aide de Chrome et du et un autre pour permettre une sorte d'échange de clé p> - Autoriser-fichier-accès-ge-fichiers code> n'ayant pas vraiment aidé. Retour au script Mon serveur devait retourner, j'ai ajouté ces en-têtes à la réponse et cela a fonctionné bien:
sans toucher le serveur - p>
Le moyen le plus rapide et le plus simple de contourner la même stratégie de sécurité d'origine dans Firefox est l'installation de l'add-on Force Cors. Cela fonctionne avec n'importe quel service en insérant les en-têtes appropriés dans chaque réponse. P>
https://addons.mozilla.org/en-us/firefox / addon / ForceCors / P>
Il convient de mentionner que, après avoir installé, vous devez cliquer sur Affichage => Barres d'outils => barre Ajouter. Ensuite, le bouton CORS affichera dans le fond droit, cliquez dessus pour l'activer. J'ai décompressé le XPI et voyez qu'il y a une fonction basculante lorsqu'un bouton a été poussé mais que vous ne voyez jamais le bouton.
localhost n'est pas autorisé à utiliser dans Cors http: // code. Google.com/p/chromium/issues/detail?id=67743 Utilisez LVH.ME à la place p>