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?
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
Mettez ceci dans vos . Htaccess et travaux ajax simples
<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin: *
</ifModule>
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");