2012-05-21 17 views
7

Deseo enviar un formulario usando AJAX a un controlador MVC 3.¿Cómo habilitar/usar el intercambio de recursos de origen cruzado con MVC 3?

El formulario y el controlador se encuentran en dos dominios diferentes, por lo que quiero utilizar CORS.

He leído que el siguiente código debe hacer el truco en ASP.NET:

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

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

En caso de que el código vaya directamente en el controlador que toma los datos del formulario? Por lo que sé, tiene que haber algún intercambio de datos entre los datos de publicación del cliente y el servidor, para determinar si el CORS está habilitado/admitido o no, entonces me imagino que la línea de código tiene que ir a otro lugar.

Gracias

+0

He creado una implementación de código abierto CORS que se puede consultar aquí: http://brockallen.com/2012/06/28/cors-support-in-webapi-mvc-and-iis- with-thinktecture-identitymodel/ –

+0

¡Muy bonito! Gracias – Kenci

Respuesta

3

Esto podría ir en el controlador. En realidad, probablemente lo externalizaría en un filtro de acción personalizado para evitar repetirlo en cada acción del controlador que deba invocarse desde una llamada AJAX de dominio cruzado. No hay pasos adicionales necesarios. Solo asegúrate de que tu navegador admita CORS porque si no agrega esta línea no tendrá ningún efecto estrictamente.

+0

Gracias por la respuesta. Cuando agrego los encabezados al controlador, ¿puedo usar un POST ajax normal en el cliente, o tengo que especificar algo específico para que funcione? – Kenci

+0

No, no necesita especificar nada en particular. Debería funcionar con un '$ .post()' estándar si el navegador que está utilizando admite CORS. –

+0

Necesito usarlo para una aplicación ipad2, así que espero que un nuevo ipad2 listo para usar lo admita. http://caniuse.com/cors :) – Kenci

Cuestiones relacionadas