2014-09-09 13 views
14

Sto utilizzando il codice qui sotto per creare un collegamento, quando faccio clic sul collegamento in IE sta funzionando e sono in grado di aprire l'URL ma non in Chrome.Non è consentito caricare la risorsa locale: file

Test<a href='#'onClick=window.open('file:\\160.53.112.171\myTest\cons\4.1\displayData.htm','_self') > 

Di seguito è riportato il messaggio di errore visualizzato sulla console di Chrome.

Non è consentito caricare la risorsa locale: file: file: /// C: /160.53.112.171myTestcons%04.1displayData.htm in chrome.

+1

URL utilizzano '/', non '' \ '' –

+0

non è "file: \\", è "file: //" ancora non si sa se Chrome lo permetterà, ma avere la strada giusta dovrebbe aiutare se lo farà. – dandavis

+1

Ho provato sia "\" che "/" ma non lavorando in chrome e dando l'errore sopra menzionato sulla console. – scrit

risposta

-1

Ho provato questo in IE, Chrome e Firefox. Sta funzionando.

<a href='#'onClick=window.open('displayData.html','_self') >Test</a> 

Non sono sicuro, ma potrebbe essere possibile che la versione del browser lo riguardi. Si prega di aggiornare la versione del browser, quindi riprovare.

+0

quando eseguito utilizzando il server tomcat lancia l'errore seguente sulla console del browser: Non è consentito caricare la risorsa locale: file: \\ 160.53.112.171 \ myTest \ cons \ 4.1 \ displayData.htm, lo stesso quando eseguito come normale html funziona correttamente - @Sanjay. – scrit

1

Quando si tenta di aprire un file con FILE:\\\\ tramite javascript in IE. IE non ti permetterà di aprirlo (che è un comportamento predefinito) a causa di alcune restrizioni di sicurezza. Ho già affrontato questo problema di sicurezza di IE in più progetti. Puoi provare a cambiare le impostazioni di sicurezza di IE come indicato di seguito, ma non è raccomandato (dal momento che non è possibile modificare le impostazioni di ciascun utente per modificare il comportamento).

seguenti impostazioni lavora per IE 8

In Internet Explorer, andare in Strumenti → Opzioni Internet → Avanzate. Scorri verso il basso fino alla sezione Sicurezza e seleziona la casella "Consenti al contenuto attivo di essere eseguito sui file sul mio computer".

2

Per chiunque atterraggio qui e lavorare in asp.net:

ho avuto lo stesso problema (non consentito per caricare risorsa locale) in tutti i browser tranne IE.

mia soluzione era quella di avere l'ancora diretto a un gestore & includono una stringa di query per il percorso:

<a href='handler.ashx?file=//server_name//dir//filename.pdf' /> 

Poi il gestore avrebbe scritto il file come la risposta (si apre in una nuova scheda, se lo desideri con _self):

public void ProcessRequest (HttpContext context) { 

     if (context.Request["file"] != null && !String.IsNullOrEmpty(context.Request["file"].ToString())) 
     { 
      try 
      { 
       context.Response.Clear(); 
       context.Response.ClearContent(); 
       context.Response.ClearHeaders(); 
       //whichever content type you're working with 
       context.Response.ContentType = "application/pdf"; 

       //encode the path when you set the href of the anchor, so decode it now 
       string file_name = HttpUtility.UrlDecode(context.Request["file"].ToString()); 
       context.Response.TransmitFile(file_name); 

      } 
      catch { } 
     } 
} 
+0

Bene, quando elabori la richiesta via server, non ci saranno problemi di sicurezza. – Utkarsh

Problemi correlati