Bonjour,
J'ai un problème avec la fonction .load() de jQuery pour charger le contenue d'un fichier php.
Je ne peux pas rentrer dans les détails de l'application mais cela se présente sous la forme suivante:
La fonction fonctionne parfaitement avec Chrome ou Firefox j'obtient le résultat souhaité. Ma structure html s’injecte dans le body de l'application exécuté sur les serveurs.
Ce morceau de code ne fonctionne pas avec Internet Explorer:
Sur les serveurs:
$("body").load("http://mondomaine.com/ma_structure_html.php",function(){
alert( "Chargement ok" );
});
La structure commune:
<?php header('Access-Control-Allow-Origin: *', true); ?>
<table>
<tr>
<td>Mon html Commun</td>
</tr>
</table>
Je cherche donc une alternative pour réaliser la même injection sur tous les navigateurs. Si quelqu'un à déjà eu le même problème ce serais sympa de me donner un petit coup de pouce.
Vous remerciant par avance pour votre aide.
Raphaël
J'ai trouvé la solution en utilisant une autre méthode.
X/DomainRequest n'a pas résolue mon problème.
J'ai donc passer le contenue de ma page web en datatype : jsonp qui autorise les requete GET cross domaine et cross navigateur.
exemple:
$.ajax({
type: 'GET',
url: 'http://www.votre-url.com/htmlToJson.php',
data: {
field: 'value'
},
dataType: 'jsonp',
crossDomain: true,
}).done(function(data){
console.log(data'0'].replace("\'","'"));
}).fail(function(error){
console.log(error.statusText);
});
Cela fonctionne maintenant sur IE et les autres navigateurs.
La fonction load() de jQuery exécute une requête Ajax avec XMLHttpRequest, qui ne fonctionne pas en cross domain sur IE<10.
Pour que ça fonctionne sur IE il faut que tu passes par X/DomainRequest (faut enlever le /, je l'ai mis parce que sinon ça fait un smiley XD).
Tu trouveras plus d'infos et comment faire sur ce tuto Open Classrooms : http://fr.openclassrooms.com/informatique/cours/ajax-et-l-echange-de-donnees-en-javascript/l-xmlhttprequest-cross-domain
Ok je vais voir ce que ça donne avec cette méthode et indiquerais sur le sujet le résultat.
Merci !