2010-09-22 17 views
0

Ok, donc le titre de ma question a pu être un peu confus.Une requête AJAX peut-elle être effectuée dans un fichier résidant sur le serveur sur lequel un fichier Javascript est hébergé lorsqu'il est inclus sur un site distant?

Voici mon exemple:

www.WebsiteA.com accueille MyFile.js à http://www.WebsiteA.com/MyFile.js. Ce fichier fait une requête AJAX pour http://www.WebsiteA.com/location/file

Lorsque ce fichier Javascript est inclus sur WebsiteB via la balise script, le Javascript va-t-il se heurter à des problèmes interdomaines ou est-il basé sur l'endroit où le fichier Javascript est hébergé?

Espérons que vous me comprenez ok, merci pour les réponses :)

Mike

+0

Je ne suis pas sûr de marquer comme la réponse depuis les deux meilleures réponses semblent me dire des choses différentes. Bien sûr, je ferai mes propres tests quand je commencerai le développement, puis reviendrons et marquerons la bonne réponse. Merci pour vos commentaires! – Mike

Répondre

2

Le same origin polic y applique au domaine du site (ie. L'URL que vous voyez dans la barre d'adresse de votre navigateur). Le fichier JavaScript peut être hébergé sur n'importe quel domaine. La balise <script> est exemptée de la même règle d'origine.

Si la barre d'adresse dans le navigateur affiche www.websiteB.com, vous rencontrerez la même stratégie d'origine si vous effectuez une demande dans un fichier sur www.websiteA.com. Ceci est sans rapport avec l'endroit où le fichier .js est hébergé. Si tel est le cas, vous pouvez vérifier les éléments suivants Stack après débordement pour quelques solutions de contournement:

0

Vous pouvez le faire - c'est ainsi plus javascript basé trackers d'analyse travail (Google Analytics etc.)

+0

Vous téléchargez le fichier à partir de Google, afin qu'il puisse revenir à Google. Si vous téléchargez à partir d'un site, ce fichier javascript ne peut pas aller à un autre site, même si vous pouvez changer l'emplacement du navigateur et le navigateur peut aller. –

+1

Je sais - il posait des questions à ce sujet. Si le site A héberge un fichier JS qui effectue un appel AJAX à une ressource hébergée sur le site A, si le site B fait référence à JS, l'appel AJAX dans le script fonctionnera toujours. C'est ce que GA fait. Vous incluez le script de google, et il fait un appel à une autre ressource sur le même domaine qui héberge le script que vous incluez. –

+0

Au début, je pensais que vous aviez raison Michael, mais en regardant maintenant, Google Analytics ne demande-t-il pas une "image" à laquelle il envoie des données relatives? Comme il n'a pas besoin de charger des données .. – Mike

0

Cela dépend si vous utilisez un chemin relatif ou un chemin complet.

  • S'il est relatif, le serveur d'hébergement regardera par rapport à l'URL qui est appelée
  • Si elle est pleine, vous pouvez spécifier un domaine/hôte