8
votes

Comment obtenez-vous du contenu d'un autre domaine avec ?charger ()?

Demander des données à partir de n'importe quel emplacement de mon domaine avec .charger () (ou toutes les fonctions JQuery Ajax) fonctionne simplement bien.

essayer d'accéder à une URL dans un domaine différent ne fonctionne pas cependant. Comment faites-vous? L'autre domaine se trouve également être à moi.

J'ai lu sur une astuce que vous pouvez faire avec PHP et faire un proxy qui obtient le contenu, puis vous utilisez les fonctions Ajax de JQuery, sur cet emplacement PHP sur votre serveur, mais qui utilise toujours JQuery Ajax sur votre propre serveur pour que 't compter.

Y a-t-il un bon plugin?

edit: J'ai trouvé un très beau plugin pour JQuery qui vous permet de demander du contenu à d'autres pages à l'aide de la fonction JQuery de la même manière que vous feriez une demande Ajax normale dans votre propre domaine. .

Le message: http://james.padolsey.com/ JavaScript / cross-domaines-Demandes-with-jQuery /

Le plug-in: https://github.com/ Jamespadolsey / jQuery-plugins / arborescence / Master / Cross-Domain-Ajax /


0 commentaires

4 Réponses :


10
votes

Ceci est dû à la stratégie croisée, qui signifie enrible que l'utilisation d'un script côté client (A.K.A. JavaScript ...) Vous ne pouvez pas demander des données d'un autre domaine. Lucky pour nous, cette restriction n'existe pas dans la plupart des scripts côté serveur.

SO ... P>

JavaScript: p>

echo file_get_contents("http://www.google.com/");


3 commentaires

Tant qu'il n'y a pas de restrictions à ce sujet, de nombreux services d'hébergement partagés désactivent cela. Si tel est le cas pour vous, vous pouvez envisager d'utiliser Curl curl.haxx.se


Certes, j'ai supposé utiliser l'un des services d'hébergement mieux rémunérés.


Le service d'hébergement mieux rémunéré désactive allow_url_fopen . C'est mieux pour la sécurité.



3
votes

Différents domaines = différents serveurs aussi loin que votre navigateur. Utilisez JSONP pour faire la demande ou utiliser PHP à proxy. Vous pouvez utiliser jquery.ajax () pour faire une demande JSONP croisée.


0 commentaires

3
votes

Une solution de contournement vraiment facile est d'utiliser le service YAHOO's YQL, qui peut récupérer du contenu de tout site externe.

Je l'ai fait avec succès sur quelques sites suivant cet exemple qui utilise juste JavaScript et YQL. http://icant.co.uk/articles/crossdomaine -ajax-with-jQuery / en utilisant-yql.html

Cet exemple fait partie d'un article de blog qui décrit également quelques autres solutions. http://www.wait-til-til-i.com/2010/01/10/rochargement-external-Content-with-ajax-utilisateur-jquery-and-yql/


1 commentaires

Merci, le plugin que j'ai référencé dans mon édition ci-dessus utilise réellement cela: D



1
votes

Je connais une autre solution qui fonctionne. Il n'exige pas de modifier JQuery. Il exige de pouvoir résister à une page ASP dans votre domaine. J'ai utilisé cette méthode moi-même.

1) Créer une page proxy.asp comme celui de cette page sur cette page http: // www. itbsllc.com/zip/proxyscripts.html

2) Vous pouvez ensuite faire une fonction de charge jQuery et l'alimenter proxy.asp? URL = ....... Il existe un exemple sur ce lien de la manière de le formater exactement. Quoi qu'il en soit, vous nourrissez l'URL de la page étrangère et votre type de mime désiré, car obtenir des variables à votre proxy.asp local. Les deux types de mime que j'ai utilisés sont Text / HTML et Image / JPG.

Remarque, si votre page cible contient des images avec des liens source relative, ceux-ci ne se chargeront probablement pas. J'espère que cela vous aidera.


0 commentaires