Hello à toutes et à tous.
Je suis sur un problème depuis plusieurs jours et j'en deviens fou ^^
J'ai fait une interface web pour ma Raspberry, pour mon métier.
Dans un premier temps, l'OS utilisé était Raspbian.
Mais j'ai voulu me lancer dans la fabrication de mon propre OS avec Buildroot.
Sous Rapsbian, tout fonctionnait bien.
Sous mon OS perso, une bonne partie fonctionne, mais quand je fais appel a Ajax, gros problème.
sous Raspbian mon serveur web était composé de Apache2 et php7.
Sous mon OS perso, je suis passé à nginx et php-fpm ( toujours version 7).
La conf de nginx :
Le script 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
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /diagbox/web; index intro.html; } error_page 550 /550.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { fastcgi_pass unix:/run/php-fpm.sock; fastcgi_param SCRIPT_FILENAME /diagbox/web/$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
La partie du code html, le bouton faisant appel à ajax
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 //Constantes fonction reboot const scripts_reboot = '../scripts/reset_reboot/reboot.php' const mess_reboot = "La DiagBox redémarrera après avoir cliquer sur 'ok'. Tu pourras te reconnecter sur l'interface web d'ici 30 secondes environ :)" const err_reboot = "Une erreur a empeché le redémarrage de la carte." function reboot(param1, param2) // param1 = smartphone ou tablette . param2 = oui ou non { if (param1 === 'tablette') { switch (param2) { case 'oui': alert(mess_reboot); $.ajax({ url: scripts_reboot, }); break; default: choix_menu('accueil', 'tablette'); // Fonction accessible grace a la page html break; } } else if (param1 === 'smartphone') { switch (param2) { case 'oui': alert(mess_reboot); $.ajax({ url: scripts_reboot, }); break; default: choix_menu('accueil', 'smartphone'); // Fonction accessible grace a la page html break; } } else { alert(err_reboot); } } //fin script reboot
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <div id="reboot"> <h2 class="h2_reboot"> confirmer le redémarrage de la Diagbox ? </h2> <input id="reboot_yes_tablette" type="button" value="Oui" class="tablette_bouton" onclick="reboot('tablette', 'oui');" /> <!-- Bouton pour oui --> <input id="reboot_no_tablette" type="button" value="Non" class="tablette_bouton" onclick="reboot('tablette', 'non');" /> <!-- Bouton pour non --> </div>
Je n'ai aucunes erreur qui remontent dans les logs.
J'ai utilisé success, error et complete pour remonter les infos post ajax.
Et ce sont les fonctions de success et complete qui apparaissent.
J'ai du faire une méga boulette mais tellement immense que je ne la vois pas ^^.
J'ai testé le script php directement en ligne de commande et il fonctionne.
J'ai aussi introduit du code php dans la page html et il s'exécute.
J'ai un autre script en javascript qui modifie l'apparence de la page et il fonctionne.
Donc je vois pas mon erreur.
Help me please
Merci d'avance
Partager