Il n'y a aucun moyen de désactiver "temporairement" XMLHttpRequest interdomaines. Si vous pouvez le désactiver temporairement, vous pouvez le désactiver définitivement. Il s'agit d'un problème assez courant dans la programmation AJAX moderne et il est le plus souvent résolu à l'aide de la technique connue sous le nom de scripting interdomaine.
L'idée est que si vous faites appel à un script inter-domaines, celui-ci renvoie des résultats JavaScript (JSON) qui sont ensuite transmis à une fonction de votre côté.
Voici un exemple de code pour illustrer comment cela peut se présenter du point de vue du code JavaScript :
function request_some_data() {
var s = "http://my.document.url.com/my_data?p1=v1&p2=v2&callback=myfunc";
try {
try{
document.write("<scr"+"ipt type='text/javascript' src='"+s+"'></scr"+"ipt>");
}
catch(e){
var x = document.createElement("script");
x.src = s;
document.getElementsByTagName("head")[0].appendChild(x);
}
}
catch (e) {
alert(e.message);
}
}
Vous définirez alors une fonction dans votre code qui reçoit les données et dans le serveur vous "gérez" le cas de rappel, voici le JavaScript côté client :
function myfunc(data) {
alert(data);
}
Et côté serveur, je donne ici un exemple en PHP, mais cela peut être fait tout aussi facilement en Java ou toute autre technologie côté serveur :
<?php
if($_GET["callback"]) {
print($_GET["callback"] . "(");
}
/* place your JSON object code/logic here */
if($_GET["callback"]) {
print(");");
}
?>
Notez que ce que vous générez du côté du serveur se transforme en JavaScript qui est exécuté du côté du client.
0 votes
Si vous pouvez exiger de modifier les paramètres de sécurité de Firefox, ne pourriez-vous pas utiliser un script de GreaseMonkey ?
1 votes
Essayez-le sur Chrome : stackoverflow.com/questions/3102819/
0 votes
Essayez mon add-on Firefox pour activer le cross domain avec ajax ici : addons.mozilla.org/en-US/firefox/addon/cross-domain-cors