XMLHTTP che funziona solo a metà

mgigio

Nuovo Utente
3 Mag 2007
11
0
0
Ciao a tutti, sono nuovo, anche se avendo letto spesso i post nei vari forum, mi sento un po' di casa. Approfitto del primo messaggio per complimentarmi con tutti voi ma in realtà ho bisogno anche di una vostra opinione su un caso per me insolubile.

Provando a realizzare la mia prima applicazione in ajax mi sono imbattuto in uno strano comportamento in IE6. Devo premettere che uso esclusivamente Firefox e Opera, e testando il mio script su entrambi questi browser non ho avuto problemi.

Lo script si limita a creare un oggetto XmlHttpRequest, ho utilizzato praticamente tutte le più diffuse soluzioni cross-browser che ho trovato in rete (una per volta, ovviamente!).

Il comportamento per me inspiegabile è questo: aprendo la pagina con lo script in ie6, questo riesce a creare l'oggetto Msxml2.XMLHTTP nel caso in cui accedo al file html direttamente da file system (file:///c:\etc\etc) , mentre mi dà errore (impossibile creare l'oggetto) se lo apro tramite web server (apache 2.0 su xp).

Ho potuto inoltre testare lo script direttamente in internet da un sito che lo implementa (non so con quale server), e anche in questo caso funziona tutto. E' evidente che mi sono perso qualcosa.

Chi mi può illuminare al riguardo?

Grazie a tutti coloro che avranno la pazienza di chiarirmi le idee
 

mgigio

Nuovo Utente
3 Mag 2007
11
0
0
up

Benissimo, vista la mole di interventi in questa discussione immagino di essere l'unico ad avere questo problema. Allora provo a modificare la domanda.

L'oggetto xmlhttp è creato dal browser, giusto?

In che modo può influire l'origine di una pagina sull'esecuzione di script lato client?

Ho pensato a un problema di impostazioni di protezione. Ovviamente ho cercato di porvi rimedio cercando di modificare le impostazioni senza risultato.

Inoltre come dicevo il problema non si verifica sempre accedendo a siti esterni.

Nessuna dritta?
 

ArtCava

Utente Attivo
23 Dic 2006
48
0
0
Torino
www.artcava.net
Msxml2.XMLHTTP

Ciao Mgigio,

La prima cosa che mi viene in mente è chiederti di riverificare gli oggetti supportati da Microsoft, non credo sia quello in oggetto, provo a postarti il codice che utilizzo io:
Codice:
    // codice per Mozilla, etc.
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
        if(xmlhttp.overrideMimeType) {xmlhttp.overrideMimeType('text/xml');}
    }
	// codice per  IExplore
	else if (window.ActiveXObject)
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (xmlhttp&&(url!=""))
    {
        xmlhttp.onreadystatechange = xmlhttpChange;
        xmlhttp.open("POST",url,true);
        xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlhttp.send(params);
    }
    else
    {
        alert(xmlhttp+" "+url+" "+args.length);
    }
}

function xmlhttpChange()
{
    // if xmlhttp shows "loaded"
    if (xmlhttp.readyState==4)
    {
        // if "OK"
        if (xmlhttp.status==200)
        {          document.getElementById("divId").innerHTML = xmlhttp.responseText;
        }
        else
            alert("unable to get data!");
    }
}

Dove url = pagina da chiamare e params = parametri da passare a tale pagina...

Verifica inoltre di chiamare pagine appartenenti allo stesso dominio dove risiede la parte javascript, tutti gli oggetti XHR hanno delle "limitazioni" di sicurezza con le quali mi sono scornato per un mio progetto, insomma non consentono il cross-domain.

:byebye:
 

mgigio

Nuovo Utente
3 Mag 2007
11
0
0
Grazie mille per i consigli (ormai non ci speravo più). Ho appena provato il codice che hai postato. Purtroppo il problema rimane. In effetti ho un errore in corrispondenza di questa riga:

Codice:
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
anche nella variante:
Codice:
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

So che ci sono restrizioni relative al dominio, ma nel mio caso i file sono tutti nella stessa cartella.

Come dicevo il problema si presenta solo se accedo alla pagina tramite apache, mentre se apro il file direttamente in ie funziona tutto (salvo non poter caricare gli elementi generati lato server, ovviamente). Questo mi porta a rispondere al tuo consiglio di riverificare il supporto dei vari oggetti, che anche in queso caso sembra tutto a posto.

Comunque se sono l'unico ad avere questo problema, forse posso mettere tutto in rete confidando che su altri computer funzioni tutto a dovere.

In ogni caso ti sono grato dei suggerimenti e spero che vorrai mandarmene altri, non credo altrimenti di venirne a capo da solo.
 

ArtCava

Utente Attivo
23 Dic 2006
48
0
0
Torino
www.artcava.net
Caspiterina... Abbastanza incomprensibile!

Posso solo consigliarti come ultimo tentativo di utilizzare prototype.js che funziona in tutto il mondo. Lo puoi scaricare di qui.

:byebye:
 

mgigio

Nuovo Utente
3 Mag 2007
11
0
0
Ciao ArtCava, grazie anche per questo suggerimento che seguirò sicuramente.

Avevo anche pensato di rinunciare all'oggetto xmlhttp seguendo il post di gmniko PHP AJAX senza XMLHTTPRequest, però come potrai immaginare oltre a realizzare il mio progetto vorrei anche capire dove sbaglio.

Ti darò notizie non appena avrò provato prototype e ti ringrazio ancora per la disponibilità.
 

mgigio

Nuovo Utente
3 Mag 2007
11
0
0
Ciao ArtCava,
non va molto bene, sto ancora studiando prototype ma l'ho provato e ho già potuto verificare che su opera e ff funziona, mentre continuo ad avere problemi su ie.

A questo punto mi convinco sempre più che sia un problema di impostazioni.

Sono contento che almeno tu hai ottenuto quello che volevi.

Se risolvo ti faccio sapere, in fondo potrebbe capitare anche ad altri. Grazie dell'aiuto
 
Discussioni simili
Autore Titolo Forum Risposte Data
Z XMLHttp con TinyMCE Javascript 0
M xmlhttp ed errore 'ASP 0185 : 80020003' Classic ASP 4
L focus dopo xmlHttp Ajax 0
G Xmlhttp Errore Classic ASP 5
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
C Hosting che supportano websocker ed event scheduler Domini 0
K Form che manda dati doppi PHP 1
D rotella di caricamento che si toglie quando parte il download Ajax 0
M Vendo il mio sito web teknosurfng.com, che trasmette nel campo della tecnologia Compravendita siti e domini 0
Shyson Regex che trova la parola nella pagina jQuery 6
alankanz Count che ricomincia ogni anno PHP 2
AkTaRuS DIsabilitare il tasto destro tranne che per code e pre Javascript 1
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
Ricky80 Fiore che sboccia Javascript 0
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
G notifiche dekstop/mobile ogni volta che record è inserito/eliminato/aggiornato PHP 0
P Pagina modifica record che non funziona PHP 0
S In che linguaggio è scritto il DTD? XML 2
Shyson Wordpress conta più messaggi di quelli che ci sono WordPress 1
Stex1967 Salvare una immagine che si trova su porta TCP 8080 di altro sito PHP 7
G Finestra di dialogo che non si apre - programma NUENDO Windows e Software 0
voldemort Cos'è una SCRL? Che tipo di società è?? Leggi, Normative e Fisco 1
Shyson Codice che trova item casuali PHP 1
S Testo scrolla su immagine che cambia HTML e CSS 0
R Immagini scontornate: che formato? HTML e CSS 4
R Select concatenata che non funziona la seconda volta Ajax 3
G un tool che trova nuovi clienti per web agency e web developer Offerte e Richieste di Lavoro e/o Collaborazione 2
I Credo che si inizi con ciao... Presentati al Forum 1
Alex_70 Stringa che diventa un url PHP 6
A nome file che contiene punto passato come parametro a query PHP 31
D File pdf che non si aprono .... PHP 1
S Hosting che permetta collegamenti esterni Hosting 0
V Condominio dispettoso, volume citofono che si abbassa e si alza in maniera strana Presentati al Forum 1
C ID che si incrementa ad ogni evento Database 0
P Sito creano con Joomla con sottominio che reindirizza a sito esterno Domini 1
T Far sparire dalla pagina div che saranno inseriti successivamente jQuery 0
T [a pagamento] programmatore PHP che mi aiuti a migrare gli script da vecchia versione PHP a nuova Offerte e Richieste di Lavoro e/o Collaborazione 1
E Div che scompare con scroll jquery Javascript 0
T Dubbio su costante ROOT, che rappresenti la base directory del sito PHP 4
G Evitare che mi continui ad arrivare in alice mail spam Posta Elettronica 2
A Non è un array e nemmeno un intero, che tipo di dato è? Javascript 1
D Logout che rientra col tasto indietro del browser PHP 5
R Impianto che non si vede sul cell IP Cam e Videosorveglianza 6
E Webmaster freelancer che si vuole tutelare legalmente Leggi, Normative e Fisco 0
C [PHP] Estrarre da una classe i valori che mi interessano PHP 5
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
SilverSpirit Hosting che non costa molto Hosting 4
D [PHP] Query che aggiorna tabella PHP 4
M [MS Access] Pulsante su maschera che esegue azioni su altra maschera MS Access 3
Max 1 [PHP] Script che funziona in locale e non online PHP 16

Discussioni simili