2012-02-19 25 views
6

Tôi đang gặp khó khăn khi tải Trình tải tệp lên Blueimp jQuery làm việc trên MVC 3 với IIS 7.5 trên Windows Server 2008 R2. Tôi đang sử dụng một HttpHandler để xử lý các Tải lên, được gọi là. Nhưng HttpHandler không bao giờ nhận được một tập tin hay HttpMethod "POST" hoặc "PUT", luôn luôn "TÙY CHỌN". Có ai có ý tưởng gì đang sai lầm ở đây không?Tải lên tệp Blueimp jQuery và HttpHandler: Không có tệp và luôn "TÙY CHỌN" HttpMethod

Thông báo duy nhất tôi nhận được về cuộc gọi không gọi lại từ người tải lên là "lỗi".

Đây JS của tôi:

$('#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"}]; 
    }*/ 
} 
); 

Cảm ơn bạn rất nhiều vì bất kỳ sự giúp đỡ!

Trả lời

4

rồi thêm một số mã đã làm các trick:

Server-side:

 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

Khi bạn trang được phục vụ từ domain1.com và bạn đang cố gắng tải lên domain2.com. yêu cầu bài đăng HTTP của bạn được xem trước.

domain2.com của bạn thực sự nên cho phép domain1.com tải lên tệp. trên máy chủ khác nhau có cơ chế khác nhau để thực hiện điều đó.

Chỉ cần đọc về cách đặt "Access-Control-Allow-Origin" cho máy chủ của bạn là IIS trong trường hợp này.

cho Amazon S3, nó khá đơn giản, chúng có xml chính sách mà bạn cần cập nhật cho điều này.

Các vấn đề liên quan