web-dev-qa-db-fra.com

Comment activer la demande interdomaine sur le serveur?

J'ai un fichier json hébergé sur mon serveur. Lorsque j'essaie de faire une demande Ajax "GET" dans le fichier json, cela échoue.

Voir la console dans Safari, elle indique "Impossible de charger la ressource".

Firebug affiche "200 OK", mais la réponse ne s'affiche pas. Même Firebug n'affiche pas l'onglet JSON.

Je pense que c'est parce que les demandes interdomaines ne sont pas autorisées à utiliser AJAX.

Je voudrais savoir comment surmonter cela? De plus, si je souhaite activer les demandes interdomaines sur mon serveur, je crois qu'un crossdomain.xml un fichier ou quelque chose doit être créé. Je ne suis pas sûr, mais c'est ce que je sais. J'ai effectué une recherche sur Google, mais je n'ai trouvé aucun lien pertinent.

Toute aide dans ce domaine est très appréciée.

Merci.

MISE À JOUR: Je n'utilise aucun langage de script côté serveur (PHP, ASP.NET, etc.). J'utilise HTML simple et JavaScript/jQuery.

MISE À JOUR-2:

J'ai utilisé le code suivant pour effectuer des demandes interdomaines:

<script src="jquery-1.6.2.js"></script>
  <script>
  $(document).ready(function () {
    $.ajax({
      dataType: 'jsonp',
      data: '',
      jsonp: 'jsonp_callback',
      url: 'http://myhosting.net/myjsonfile.json',
      success: function (jsonData) {
        alert("success")
        alert(jsonData);
      },
      error: function(errorObj) {
        alert(errorObj.statusText);

      },
    });
});

Quand je vois dans l'onglet "Net" de Firebug, je vois un onglet JSON, et je peux voir la réponse json. Cependant, le gestionnaire de rappel "succès" n'est pas appelé, mais le gestionnaire de rappel "erreur" est invoqué et je reçois l'alerte disant parseerror.

Une idée de ce qui pourrait être faux?

20
Mahendra Liya
Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com

sur le serveur cible

en php:

 header("Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com");

au cas où vous ne voudriez pas utiliser de langage de script serveur: mettez-le dans la console (linux)

a2enmod headers

et à votre fichier .htaccess ajoutez

Header set Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com
39
genesis

Mettez ceci dans vos . Htaccess et travaux ajax simples

<ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: *
</ifModule>
6
boksiora

la solution donnée par genesis a fonctionné pour moi, mais j'ai dû omettre la barre oblique de fin sur l'url. c'est à dire:

header("Access-Control-Allow-Origin: http://yourdomain-you-are-connecting-from.com");
3
user1316108