Загрузка файла Blueimp JQuery и HttpHandler: Нет файла и всегда "ОПЦИИ" HttpMethod - PullRequest
6 голосов
/ 19 февраля 2012

Я изо всех сил пытаюсь заставить Blueimp jQuery File-Uploader работать на MVC 3 с IIS 7.5 на Windows Server 2008 R2. Я использую HttpHandler для обработки загрузки, которая вызывается. Но HttpHandler никогда не получает файл, ни HttpMethod "POST" или "PUT", всегда "OPTIONS". Кто-нибудь знает, что здесь не так?

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

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

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

Ответы [ 2 ]

4 голосов
/ 20 февраля 2012

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

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

        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 голосов
/ 07 января 2013

Когда ваша страница обслуживается с domain1.com, и вы пытаетесь загрузить на domain2.com.Ваш HTTP пост-запрос предварительно выдан.

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

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

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

...