2015-12-21 19 views
5

Tôi đang cố gắng thử nghiệm chức năng tải lên cho ứng dụng html5, angularjs bằng trình mô phỏng bộ nhớ azure. Đối với một số lý do, mỗi khi tôi gửi tập tin đến địa chỉ tạo ra url cho localhost tôi tiếp tục nhận được lỗi CORS. Bây giờ trên các trường hợp đám mây, tôi đã sử dụng đoạn mã sau để hỗ trợ thêm CORS và nó hoạt động:Nhận lỗi CORS khi cố gắng thử tải lên trên trình mô phỏng bộ nhớ

blobServiceProperties.Cors.CorsRules.Add(new CorsRule() 
{ 
    AllowedHeaders = new List<string>() { "*" }, 
    //ExposedHeaders = new List<string>() {"*"}, 
    AllowedMethods = CorsHttpMethods.Post | CorsHttpMethods.Put | CorsHttpMethods.Get | CorsHttpMethods.Delete, 
    AllowedOrigins = new List<string>() { "http://example.com" }, 
    MaxAgeInSeconds = 3600 
}); 

Khi tôi cố gắng chạy này cho giả lập tôi nhận được lỗi chỉ này không được phép. Tôi có phải thiết lập CORS cho giả lập là tốt và nếu như vậy làm thế nào tôi sẽ phải làm điều này như mã trên không làm việc từ giả lập?

+0

Khi nào và ở đâu là đoạn mã này chạy? – haim770

+0

WebApiConfig, tôi có hai giải pháp riêng biệt, một cho phía web và một cho dự án api web. Vấn đề chính là tôi giữ gtting các lỗi CORS trong khi thử nghiệm từ trình mô phỏng. – user1790300

+0

Tôi không nhận được chúng trên đám mây khi tôi xuất bản dự án web ngay trên trình mô phỏng. – user1790300

Trả lời

0

Một điều tôi muốn làm rõ, theo tài liệu MSDN

"dịch vụ lưu trữ Azure hỗ trợ dịch vụ Cross-Origin Resource Sharing (CORS) cho Blob, Bảng, và Queue. Các dịch vụ tập tin hỗ trợ CORS bắt đầu với phiên bản 2015-02-21. "

Và thêm vào đó

Bạn có thể đặt CORS quy tắc riêng cho mỗi người trong số các dịch vụ lưu trữ, bằng cách gọi Set Blob Service Properties, tập tin cài đặt Service Properties, Set Queue Service Properties, và Set Table Service Tính chất. Khi bạn đặt các quy tắc CORS cho dịch vụ, thì yêu cầu được xác thực chính xác được thực hiện đối với dịch vụ từ một miền khác sẽ được đánh giá để xác định liệu nó có được phép theo các quy tắc bạn đã chỉ định hay không.

Vì vậy, tôi tò mò nếu dịch vụ là dịch vụ Tệp hoặc chỉ dịch vụ blob, bạn dường như đã bật CORS cho dịch vụ blob theo đoạn mã được cung cấp. Nhưng bạn không đặt đoạn mã cho hàm tải lên, nếu bạn đang thực hiện thông qua AJAX, bạn cần đặt loại tiêu đề thành kiểu blob của dịch vụ Azure khác, yêu cầu gốc có thể bị chặn ở cuối người yêu cầu nếu nó không thể phù hợp với loại tiêu đề phản hồi dịch vụ.

Đừng kiểm tra hai liên kết này cũng

Windows Azure Service CORS example

CORS for Azure Storage Service

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