我必須在MVC項目中處理來自Ajax調用的跨站點POSTS。如何處理MVC Cross網站POST?
我有一個方法在我的控制器,應該接受與視圖模型作爲POST正文的POST。我的頁面正在從Javascript調用Ajax。這工作正常,如果一切都在同一個域。
IE11在第一次發起Ajax調用時發送沒有POST主體的OPTIONS請求。 MVC嘗試路由此,無法找到我的方法(可能是因爲它採用ViewModel參數),並返回404。但是,在第一次調用錯誤後,後續調用包括POST正文併成功路由。
我想我可以很容易地解決這個問題,方法是在我的控制器中包含一個重載的方法,它不接受任何參數,並返回一個200(或204)並且沒有消息體。但是,這給了我「當前對控制器類型的操作請求在以下操作方法之間不明確」,並列出了兩個重載。
什麼是最好的方式來正確路由?如果我得到我的控制器方法與一個null ViewModel,我可以返回一個200/204,可能會好起來 - 但我不到達那裏,路由回發一個404.
您是否啓用了CORS? http://stackoverflow.com/questions/19095777/how-to-support-http-options-verb-in-asp-net-mvc-webapi-application –
是的。沒有CORS,所有跨站請求都會失敗。使用CORS,只有第一個請求失敗。 – Brad