Bonsoir,

Je cherche à afficher un tableau html géneré par php via un jQuery.ajax().

Le code suivant fonctionne sous Chrome ET (surprenant) IE, mais pas sous Firefox

Firefox ne semble pas pouvoir lire la réponse du serveur pourtant correctement renvoyée et interprétée par Chrome et IE.

le javascript:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<div id="pshopactivity">
wrtwtywy
</div>
<script language="javascript" type="text/javascript">
var t;
function getPshopActivity(order,fold,file)
{
	if(file==undefined)var file='';
	if(fold==undefined)var fold='';
	var datos=$.extend({},{
		func:'pshopactivity',
		'ajax':'ajax',
		'order':order,
		'file':file,
		'fold':fold
	});
	$.ajax({
		type : 'POST',
		//cache: false,
		url : 'index.php',
		dataType : 'html',
		data: datos,
		//contentType: "application/x-www-form-urlencoded",
		//beforeSend:setHeader,
		error:function (xhr, ajaxOptions, thrownError){
			alert(xhr.status);
			alert(xhr.statusText);
			alert(thrownError);
		 },
		success: function(data)
		{
			$('#pshopactivity').html(data);
			/*
			txt='';
			var dirs;
			var file;
			for(dirs in data)
			{
				txt+=dirs+'<br />';
			}
 
			clearTimeout(t);
			t=setTimeout("getPshopActivity('getlist');",5000);*/
		}
	});
	return false;
}
$(document).ready(function()
{
	getPshopActivity('getlist');
}
);
</script>
Le php:

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
if(isset($_POST['order']))
{
 
	switch ($_SERVER['HTTP_HOST']) {
		case $_SERVER['HTTP_HOST']:
		header('Access-Control-Allow-Origin: http://MonUrl');
		header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
		header('Access-Control-Max-Age: 1000');
		header('Access-Control-Allow-Headers: Content-Type');
		break;
	}
	$tasks=array();
	exec('tasklist',$tasks);
	$estado='Apagado';
	foreach($tasks as $proc)
	{
		if(substr_count($proc,'hotoshop.exe')>=1)$estado='Encendido';	
	}
	$dirs=array(
	'Pendientes'=>array(),
	'Ejecutando'=>array(),
	'Hechos'=>array()
	);
	$count=0;
	foreach($dirs as $iddir=>$dir)
	{
		/*
                Listage de fichiers sur mon serveur
                */
	}
	if(count($dirs['Ejecutando'])>=1)$estado='Trabajando';
	echo'
	<table width="95%" cellpadding="5" cellspacing="0" border="1" align="center">
	<tr>
	<td colspan="3" class="titre2" align="center">Photoshop en el servidor</td>
	</tr>
	<tr>
	<td colspan="3" class="titre2" align="center">Estado actual: '.$estado.'</td>
	</tr>
	';
	if($_POST['order']=='getlist')
	{
 
		foreach($dirs as $iddir=>$dir)
		{
			echo '
			<tr>
			<td colspan="3">
			<strong>'.$iddir.':</strong>
			</td>
			</tr>';
			foreach($dir as $file)
			{
				echo '
				<tr>
				<td>
				<input type="button" value="Ejecutar" onclick="getPshopActivity(\'exec\',\''.$iddir.'\',\''.urlencode(basename($file)).'\');" ';
				if($estado=='Trabajando' or $iddir=='Ejecutando') echo ' disabled ';
				echo' />
				</td>';
				echo '
				<td>
				<input type="button" value="Borrar" onclick="getPshopActivity(\'borrar\',\''.$iddir.'\',\''.urlencode(basename($file)).'\');" ';
				if($estado=='Trabajando' or $iddir=='Ejecutando') echo ' disabled ';
				echo' />
				</td>
				<td>
				'.utf8_encode(basename($file)).'
				</td>
				</tr>';	
			}
 
		}
	}
 
 
	echo'
	<tr>
	<td colspan="3" align="center">
	<input type="button" value="Ejecutar todos los scripts pendientes" onclick="getPshopActivity(\'exec\',\'\',\'Automator\');" ';
	if($estado=='Trabajando') echo ' disabled ';
	echo' />
	</td>
	</tr>
	</table>';
}
?>

Mes headers depuis Firebug:

Requête:
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0
Accept: text/html, */*; q=0.01
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://localhost/****
Content-Length: 54
Cookie: PHPSESSID=tlgjes9d8pajdhv40o8kgjrej2
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

Réponse:
Date: Mon, 21 Jan 2013 19:08:40 GMT
Server: Apache/2.2.17 (Win32) PHP/5.3.4
X-Powered-By: PHP/5.3.4
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Access-Control-Allow-Origin: http://localhost
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers: Content-Type
Content-Length: 7105
Keep-Alive: timeout=5, max=99
Connection: Keep-Alive
Content-Type: text/html
J'ai lu ça : http://www.developpez.net/forums/d46...-ajax-firefox/
ça aussi : http://www.developpez.net/forums/d60...-ajax-firefox/
puis ça : http://www.developpez.net/forums/d77...-sous-firefox/
et à peu près tout ce que je trouvais comme résultat de GrosGueule sur les combinaisons de "AJAX JQuery Firefox POST headers".

Et rien n'y fait, j'ai le cerveau en compote et j'en peux plus.

Donc si quelqu'un trouve la solution, merci d'avance.