2012-02-19 7 views
6

Staram się, aby program do przesyłania plików jQuery Blueimp działał na MVC 3 z usługami IIS 7.5 w systemie Windows Server 2008 R2. Używam HttpHandler do obsługi Upload, który jest wywoływany. Ale HttpHandler nigdy nie otrzymuje pliku ani HttpMethod "POST" ani "PUT", zawsze "OPCJE". Czy ktoś ma pomysł, co tu jest nie tak?Załaduj plik jpu Blueimp i HttpHandler: Bez pliku i zawsze "OPCJE" HttpMethod

Jedyny komunikat, który otrzymuję na temat wywołań fail-call od przesyłającego, to "błąd".

Oto moje 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"}]; 
    }*/ 
} 
); 

Dziękuję bardzo za pomoc!

Odpowiedz

4

Ok dodanie kodu wystarczyły:

po stronie serwera:

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

Client-side:

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

Gdy strona jest serwowane domain1.com i jesteś próbuje przesłać do domeny2.com. Twoje żądanie postu HTTP jest wstępnie oświetlone.

twoja domena2.com powinna zezwalać domenie1.com na przesłanie pliku. na innym serwerze istnieje inny mechanizm do tego.

Przeczytaj, jak ustawić "Access-Control-Allow-Origin" dla swojego serwera, który jest w tym przypadku usługą IIS.

dla Amazon S3, jest to dość proste, mają polisę polityczną, którą należy zaktualizować.

Powiązane problemy