2012-05-21 31 views
7

Tôi muốn gửi biểu mẫu bằng AJAX đến Bộ điều khiển MVC 3.Làm cách nào để bật/sử dụng chia sẻ tài nguyên gốc với MVC 3?

Biểu mẫu và bộ điều khiển nằm trên hai miền khác nhau, đó là lý do tại sao tôi muốn sử dụng CORS.

Tôi đã đọc rằng đoạn mã sau nên làm các trick trong ASP.NET:

Response.AppendHeader("Access-Control-Allow-Origin", "*"); 

từ http://enable-cors.org/#how-asp.net

nên mã này đi trực tiếp trong bộ điều khiển mà mất dữ liệu mẫu? Theo tôi biết, phải có một số trao đổi dữ liệu giữa dữ liệu đăng bài của khách hàng và máy chủ, để xác định thời gian CORS được bật/hỗ trợ hay không, vì vậy tôi thấy rằng một dòng mã phải đi đâu đó khác?

Cảm ơn

+0

Tôi đã xây dựng triển khai CORS nguồn mở tương thích với thông số kỹ thuật mà bạn có thể đọc tại đây: http://brockallen.com/2012/06/28/cors-support-in-webapi-mvc-and-iis- with-thinktecture-identitymodel/ –

+0

Rất đẹp! Cảm ơn – Kenci

Trả lời

3

Điều này có thể nằm trong bộ điều khiển. Trên thực tế tôi có lẽ sẽ bên ngoài nó trong một bộ lọc hành động tùy chỉnh để tránh lặp lại nó trong mọi hành động điều khiển cần được gọi từ một cuộc gọi AJAX tên miền chéo. Không cần thêm bước nào. Chỉ cần đảm bảo rằng trình duyệt của bạn hỗ trợ CORS bởi vì nếu nó không thêm dòng này sẽ không có hiệu lực nghiêm chỉnh nào.

+0

Cảm ơn bạn đã trả lời. Khi tôi thêm các tiêu đề để điều khiển, sau đó tôi có thể sử dụng một POST bình thường ajax trên máy khách, hoặc tôi phải chỉ định một cái gì đó cụ thể cho nó để làm việc? – Kenci

+0

Không, bạn không cần phải chỉ định bất cứ điều gì cụ thể. Nó sẽ làm việc với một tiêu chuẩn '$ .post()' nếu trình duyệt mà bạn đang sử dụng hỗ trợ CORS. –

+0

Tôi cần phải sử dụng nó cho một ứng dụng ipad2, vì vậy im hy vọng rằng một ipad2 out-of-the-box mới hỗ trợ nó. http://caniuse.com/cors :) – Kenci

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