2013-02-12 17 views
15

Ho un plug-in CORS webDav, che posso usare su file POST/PUT/GET/REMOVE/ALLDOCS su un server webDav.Qual è la sintassi per eseguire un XMLHTTPREQUEST tra domini su un server FTP?

Ora voglio fare lo stesso per FTP, ma sto lottando per ottenere il -syntax xmlhttprequest di lavorare (sto solo errore 0).

Questa pagina su Mozilla dice che è possibile utilizzare anche xmlhttprequests per file e ftp, ma non riesco a trovare un esempio o un'esercitazione di lavoro da nessuna parte.

Questo è quello che sto cercando, che restituisce access to restricted URI denied

function reqListener() { 
    console.log(this.responseText); 
} 

var oReq = new XMLHttpRequest(); 
oReq.onload = reqListener; 
oReq.open("GET", "ftp://<username>:<passeword>@mydomain.de/folder/test.txt", true); 
oReq.send(); 

Ho provato anche un regolare richiesta Ajax

$.ajax({ 
    url: "ftp://sharedspace.domain.provider.com/folder/test.txt", 
    type: "GET", 
    async: true, 
    dataType: "text", 
    crossdomain : true, 
    headers : { 
    user: "<username>", 
    password: "<password>" 
    }, 
    success: function(e){ 
    console.log("success"); 
    console.log(e); 
    }, 
    error: function(e){ 
    console.log("error"); 
    console.log(e); 
    }, 
}); 

che inoltre non funziona, tornando 0 codice di stato.

Domanda:
Qual è la sintassi corretta per fare un cross-domain XMLHTTPREQUEST per FTP.

Grazie!

EDIT:
L'unico collegamento utile che ho trovato è questa pagina here, ma è solo bit e pezzi di informazioni e non riuscivo a decifrare insieme.

EDIT
Forse anche utile link

+0

Vedi http://stackoverflow.com/questions/5774497/does-anyone-know-of-a-jquery-ftp-browser-plugin –

+0

Fa CORS supporto FTP a tutti? – Bergi

+0

non ne sono sicuro, ma curioso di sapere se è possibile. – frequent

risposta

-4

io non sono del tutto sicuro che io sono un po 'stretti in tempo ma penso che si potrebbe cambiare l'estensione dei file PHP e aggiungere questa riga di codice:

header('Access-Control-Allow-Origin: *'); 

Poi vorrei solo cambiare il tipo MIME in questo modo:

header('Content-type: text/plain'); 

L'intestazione "Controllo accesso" consentirà agli script e ad altri file di accedere al file richiesto da qualsiasi dominio. Inoltre, se si desidera limitare l'accesso, è possibile inserire un elenco di domini validi. L'intestazione "content type" consentirà al file di essere letto come testo normale invece di php lì rispecchiando un comportamento di file di testo e gli utenti non lo sapranno mai

+0

questo è difficile. Provando. Buona idea :-) – frequent

+0

scusa. non funziona. Sto pubblicando una taglia per la domanda – frequent

+6

Ovviamente non funziona. Un server FTP non può eseguire PHP. –

15

Sebbene i documenti Mozilla MDN facciano riferimento a xmlHttpRequest che supporta file e ftp nessuno dei i principali browser fanno AFAIK. È uno dei motivi per cui devi servire i tuoi progetti web da qualche tipo di server, anche se si trova sulla stessa macchina, se vuoi sviluppare/testare qualsiasi materiale xmlHttpRequest dal file:// non funziona.

Microsoft dichiara specificamente che IE only supports http/https. Le specifiche W3C indicano anche che the spec is only for HTTP/HTTPS ma che "alcune implementazioni supportano i protocolli oltre a HTTP e HTTPS, ma tale funzionalità non è coperta da questa specifica".

Come per CORS, è specificamente solo per HTTP/HTTPS. Le specifiche riguardano esclusivamente l'uso di intestazioni HTTP. Vedi la specifica W3C here.FTP non ha alcun tipo equivalente di intestazione come HTTP.

+0

ok. grazie per le informazioni. Ho pubblicato il link migliore che ho trovato su come farlo, quindi tenere le dita incrociate è possibile. – frequent

+0

@frequent Buona fortuna. Abbastanza sicuro che non sia possibile senza un server HTTP intermedio che trasmette le richieste FTP. Se funziona, sembra che sarà solo in Firefox. – pseudosavant

+0

@frequent Immagino di non aver ricevuto la taglia? – pseudosavant

1
oReq.open("PUT", "ftp://`<username`>:`<password`>@mydomain.de/folder/test.txt", true); 

req.setRequestHeader('Content-Type', "text/plain"); 

req.send("Content of test.txt. This will be in test.txt"); 
+0

ok. Darò questo un tentativo stasera. Grazie! – frequent

Problemi correlati