Ho un very simple test page che utilizza le richieste XHR con i metodi $ .getJSON e $ .ajax di jQuery. La stessa pagina funziona in alcune situazioni e non in altre. Nello specifico, non funziona su Chrome su Ubuntu.Problemi con jQuery getJSON utilizzando file locali in Chrome
Sto testando su Ubuntu 9.10 con Chrome 5.0.342.7 beta e Mac OSX 10.6.2 con Chrome 5.0.307.9 beta.
- Funziona correttamente quando i file vengono installati su un server Web sia da Ubuntu/Chrome e Mac/Chrome (try it out here).
- Funziona correttamente quando i file vengono installati sul disco rigido locale in Mac/Chrome (a cui si accede con file: /// ...).
- E FAIL quando i file vengono installati sul disco rigido locale in Ubuntu/Chrome (accesso con file: /// ...).
Il piccolo set di 3 file può essere scaricato in un file tar/gzip da qui: http://issues.tauren.com/testjson/testjson.tgz
Quando funziona, la console Chrome dirà:
XHR finished loading: "http://issues.tauren.com/testjson/data.json".
index.html:16Using getJSON
index.html:21
Object
result: "success"
__proto__: Object
index.html:22success
XHR finished loading: "http://issues.tauren.com/testjson/data.json".
index.html:29Using ajax with json dataType
index.html:34
Object
result: "success"
__proto__: Object
index.html:35success
XHR finished loading: "http://issues.tauren.com/testjson/data.json".
index.html:46Using ajax with text dataType
index.html:51{"result":"success"}
index.html:52undefined
Quando si doesn funziona, la console di Chrome mostrerà questo:
index.html:16Using getJSON
index.html:21null
index.html:22Uncaught TypeError: Cannot read property 'result' of null
index.html:29Using ajax with json dataType
index.html:34null
index.html:35Uncaught TypeError: Cannot read property 'result' of null
index.html:46Using ajax with text dataType
index.html:51
index.html:52undefined
Si noti che non mostra nemmeno il Richieste XHR, sebbene venga eseguito il gestore di successo. Giuro che in precedenza funzionava su Ubuntu/Chrome, e sono preoccupato che qualcosa si sia incasinato. Ho già disinstallato e reinstallato Chrome, ma ciò non ha aiutato.
Qualcuno può provarlo localmente sul proprio sistema Ubuntu e dirmi se ha qualche problema? Si noti che sembra funzionare bene in Firefox.
La mia ipotesi sarebbe Chrome applicare inappropriatamente la politica della stessa origine e non emettere richieste pensando che sia un dominio diverso. Prova a lanciare chrome tramite la riga di comando usando '--disable-web-security' e vedi se funziona? –
@Nick: grazie, farò una prova e vedere se aiuta. – Tauren
Mi sono imbattuto nella stessa situazione, e '--disable-web-security' ha funzionato, grazie! –