2012-02-19 6 views
6

Sto cercando di ottenere il file jQuery File-Uploader di Blueimp che funziona su MVC 3 con IIS 7.5 su Windows Server 2008 R2. Sto usando un HttpHandler per gestire il caricamento, che viene chiamato. Ma HttpHandler non riceve mai un file né HttpMethod "POST" o "PUT", sempre "OPZIONI". Qualcuno ha idea di cosa stia sbagliando qui?Blueimp jQuery File Upload e HttpHandler: No File e sempre "OPTIONS" HttpMethod

L'unico messaggio che ricevo sul fail-callback dall'uploader è "errore".

Ecco i miei JS:

$('#fileupload').fileupload(
{ 
    acceptFileTypes: /(\.|\/)(pdf)$/i, 
    fail: function (e, data) { 
     alert("Error: " + data.errorThrown + " Text-Status: " + data.textStatus); 
     // data.jqXHR; 
    }, 
    maxNumberOfFiles: 1 
    /*add: function (e, data) { 
     data.formData = [{ name: "name1", value: "1" }, { name: "name2", value: "2"}]; 

     data.submit(); 
    }, 
    submit: function (e, data) { 
     //data.formData = [{ name: "name1", value: "1" }, { name: "name2", value: "2"}]; 
    }*/ 
} 
); 

La ringrazio molto per tutto l'aiuto!

risposta

4

Va bene aggiungere un po 'di codice ha fatto il trucco:

lato server:

 HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://example.net"); 
     HttpContext.Current.Response.AddHeader("Access-Control-Allow-Credentials", "true"); 

lato client:

$('#fileupload').fileupload(
{ 
    xhrFields: { 
     withCredentials: true 
    } 
} 
0

Quando la pagina viene servita dalle domain1.com e siete cercando di caricare su domain2.com. la tua richiesta di post HTTP è preflight.

il tuo dominio2.com dovrebbe effettivamente consentire domain1.com per caricare un file. su diversi server ci sono diversi meccanismi per farlo.

Basta leggere come impostare "Access-Control-Allow-Origin" per il server che è IIS in questo caso.

per Amazon S3, è piuttosto semplice che abbiano un xml di politica che è necessario aggiornare per questo.