2012-02-19 9 views
6

Я пытаюсь получить файл загрузки Blueimp jQuery, работающий на MVC 3 с IIS 7.5 на Windows Server 2008 R2. Я использую HttpHandler для обработки Upload, который вызывается. Но HttpHandler никогда не получает файл, а также HttpMethod «POST» или «PUT», всегда «OPTIONS». Кто-нибудь знает, что здесь неправильно?Загрузка файла BlueQuQ jQuery и HttpHandler: Нет файла и всегда «ОПЦИИ» HttpMethod

Единственное сообщение, которое я получаю от отказа от обратного вызова от загрузчика, - «ошибка».

Вот мои 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"}]; 
    }*/ 
} 
); 

Большое спасибо за любую помощь!

ответ

4

Хорошо добавить немного кода сделал трюк:

стороне сервера:

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

стороне клиента:

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

Когда страница подается из domain1.com и вы пытаясь загрузить на домен2.com. Ваш запрос на отправку HTTP предварительно запрограммирован.

Ваш домен2.com должен фактически разрешить domain1.com загружать файл. на разных серверах есть разные механизмы для этого.

Просто прочитайте о том, как установить «Access-Control-Allow-Origin» для вашего сервера, который является IIS в этом случае.

для Amazon S3, его довольно просто у них есть xml политики, который вам нужно обновить для этого.