|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
17-02-2007, 16.37.34 | #1 |
Forum supporter
Registrato: 11-07-2003
Messaggi: 1.843
|
[ajax] FF Ok, Ie7: "readyState è nullo o non è un oggetto"
lo script AJAX gira senza problemi in FF, ma sotto IE mi viene arcidetto che "readyState o è nullo o non è un oggetto". Creo così l'oggetto richiesta (ok, un po spartano, però ditemi SE è qua il problema...) Codice:
var Ajax = false; if (window.ActiveXObject) { Ajax = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { Ajax = new XMLHttpRequest(); } Codice:
Ajax.open(metodo, pagina); if (metodo=="POST" ) { Ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); } Ajax.setRequestHeader("Content-length", datiPost.length); Ajax.setRequestHeader("Connection", "close"); var Esito = ""; Ajax.onreadystatechange = function() { * if (Ajax.readyState == 4 && Ajax.status == 200) { OkFunc(Ajax.responseText); } else if (Ajax.readyState == 4 && Ajax.status != 200) { NoFunc(Ajax.status); } else { WaitFunc(Ajax.readyState); } } Ajax.send(datiPost); Ajax = null ; L'errore mi si presenta alla riga con l'asterisco '*'
___________________________________
Realtebo |
17-02-2007, 17.37.07 | #2 |
Guest
Messaggi: n/a
|
In teoria da quanto avevo letto, ReadyState non è accessibile da Internet Explorer quindi una soluzione non c'è... ma è meglioc he aspetti qualcuno di più esperto
|
17-02-2007, 19.08.10 | #3 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
Prova a scriverlo in maiuscolo: READYSTATE .. Internet Explorer esporta questo genere di contenuti come constanti, ff li tratta come proprietà.. vedi se così funziona, altrimenti ci sono alternative.
P.S.: usa l'oggetto navigator per differenziare i 2 tipi di codice che ingloberai entrambi nello script. |
17-02-2007, 19.11.23 | #4 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
Errata Corrige ..:
Codice:
Ajax.ReadyState |
19-02-2007, 09.22.16 | #5 | |
Forum supporter
Registrato: 11-07-2003
Messaggi: 1.843
|
sono lontano dal pc di programmazione, grazie intanto... proverò i vari suggerimenti
una cosa solo non capisco: Quota:
___________________________________
Realtebo |
|
19-02-2007, 09.30.52 | #6 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
L'oggetto "navigator" contiene informazioni sul browser del client .. attraverso la lettura delle sue prorpietà, in particolare "appVersion", puoi recuperare la versione del browser usato dal client, quindi puoi adattare il tuo codice a seconda del browser che lo utilizza.
http://www.javascriptkit.com/javatutors/navigator.shtml |
19-02-2007, 11.55.59 | #7 |
Forum supporter
Registrato: 11-07-2003
Messaggi: 1.843
|
gasp, peccato che ne ReadyState ne READYSTATE mi danno risultati...
Quello che mi chiedo è: Se viene lanciato l'evento onstatechange , vuol dire che l'oggetto Ajax è davvero in funzione, giusto? Per cui mi aspetto che le proprietà dell'ActiveX sia reperibili, .... forse con IE7 ha cambiato nome qualche proprietà?
___________________________________
Realtebo |
19-02-2007, 12.19.09 | #8 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
Senti ma quell'asterisco che c'é sulla riga dello script è un errore di copia che c'é solo qui vero ?
|
19-02-2007, 12.22.15 | #9 |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
Comunque controlla lo script, a me funziona tranquillamente, ho buttato giù due righe di prova, mi dà ovviamente 0 perché non ho sottoposto del contenuto all'oggetto, ma almeno lo legge, quindi secondo me c'é qualche errore di sintassi...
Codice:
<html> <head> <script language="javascript"> function Test() { alert("begin"); var Ajax = false; if (window.ActiveXObject) { Ajax = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { Ajax = new XMLHttpRequest(); } alert(Ajax.readyState); } </script> </head> <body onload="javascript:Test();"> </body> </html> |
19-02-2007, 17.39.26 | #10 |
Forum supporter
Registrato: 11-07-2003
Messaggi: 1.843
|
allora, credo di avere tutte le risposte:
a) l'asterisco è li solo per indicare la riga dove c'è l'errore, ovviamente nello script non c'è b) la causa è quel fantastico Ajax=null in fondo allo script. Mentre FF non esegue la garbage collection finché l'oggetto non ha finito il ciclo di vita, IE7 (il 6 non lo fa) lo canna subito, quindi, giustamente, mi dice che l'oggetto non esiste. c) la sintassi, come da voi giustamente rilevata, era CORRETTA, va benissimo scritto readyState come capitalizzazioni.
___________________________________
Realtebo |
19-02-2007, 17.47.21 | #11 | |
Gold Member
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
|
Quota:
Sulla capitalizzazione hai ragione, ho detto io una caxxata... Felice di sapere che hai risolto comunque |
|
19-02-2007, 18.16.25 | #12 |
Forum supporter
Registrato: 11-07-2003
Messaggi: 1.843
|
spiacente, appena riprovato con lo script sul server. rimettendo Ajax = null Ie7 va in palla, mentre FF2 no. ie6 non l'ho + per cui non posso sperimentare, ma grazie a Dio lo script in questione è per la mia rete interna, 60% FF2, 35% IE7 , 5% Netscape 2 (
___________________________________
Realtebo |
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
[Ajax]: chi lo conosce? | allnaz | Programmazione | 2 | 30-06-2007 23.10.17 |
[Ajax] - .status e Firefox 2 | realtebo | Programmazione | 4 | 17-02-2007 16.27.44 |
[AJAX] vs. Libreria / tool preferito | realtebo | Programmazione | 0 | 17-01-2007 10.53.11 |
[C] Segmentation fault | Manugal | Programmazione | 49 | 30-03-2006 19.17.22 |
cercare una chiave con valore nullo! | xmatrix83 | Windows 9x/Me/NT4/2000 | 8 | 04-05-2005 23.55.01 |