2012-05-21 107 views
7

我想使用AJAX将表单提交给MVC 3控制器。如何启用/使用与MVC 3的跨源资源共享?

表单和控制器位于两个不同的域,这就是为什么我想使用CORS。

我已阅读,下面的代码应该做的伎俩在ASP.NET:

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

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

如果这个代码直接在采取的形式数据的控制器? 据我所知,客户端发布数据和服务器之间必须有一些数据交换,以确定是否启用/支持CORS,所以我认为这一行代码必须去其他地方?

谢谢

+0

我已经构建了一个符合规范的开源CORS实现,你可以在这里阅读:http://brockallen.com/2012/06/28/cors-support-in-webapi-mvc-and-iis- with-thinktecture-identitymodel/ –

+0

非常好!谢谢 – Kenci

回答

3

这可能会在控制器中。实际上,我可能会在自定义动作过滤器中将其外化,以避免在需要从跨域AJAX调用中调用的每个控制器动作中重复它。没有必要的额外步骤。只要确保你的浏览器支持CORS,因为如果它不添加这条线就完全没有影响。

+0

感谢您的答案。当我将标题添加到控制器时,我可以在客户端上使用正常的ajax POST,还是必须指定特定的功能才能工作? – Kenci

+0

不,你不需要特别指定任何东西。如果您使用的浏览器支持CORS,它应该使用标准的$ .post()。 –

+0

我需要将它用于ipad2应用程序,所以我希望新的即用型ipad2支持它。 http://caniuse.com/cors :) – Kenci