2012-05-21 136 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