In locale funziona proprio perchè sei in locale: js ha accesso solo alle cose che sono sualla stessa url in cui lui si trova...
Per capirci: quando il tuo browser mostra la pagina in locale la url è del tipo: file:///..... e quaindi hai accesso a tutto ciò che inizia con file:///... , viceversa non appena lo metti online avrà una url diversa, e avrà quindi accesso solo alle cose che hanno una url similare!
Ciao!