經過幾天的搜索這裏是我的問題(這個問題讓我非常生氣)爲什麼我的POST ajax調用作爲GET傳遞?
我通過ajax調用post方法來提交表單。 不幸的是,$(form).submit()
不適合我的情況。這裏是jQuery代碼:
$.ajax({
url: '/Controller/_MyJson',
type: 'POST',
method: "POST",
data: $('#form').serialize(),
success: function (data)
{
// I will add a redirection here later
}
});
控制器動作:
[HttpPost]
public JsonResult _MyJson (MyViewModel vm)
{
//action here
}
路由配置: url: "{controller}/{action}/{id}"
的問題是,在Chrome控制檯我的電話作爲獲得通過,這讓我404錯誤。在控制器端存在_MyJson
方法並聲明[HttpPost]
。
我的jQuery版本是2.1.4。我使用aspx WebForms和一個MVC模型。
我很感激任何幫助!
UPD: 在切換到Mozilla調試器後,我發現我的POST調用正在傳遞statut 301,並且有一個GET相同的名稱會導致404錯誤。 O_O
你使用路由配置嗎?如果是這樣,請檢查您的路線以查看其映射到的內容。 – Zaki
類型是方法的別名。你不需要兩個。但這不是解決你的問題的辦法。 –
'type'參數沒用。從jQuery文檔:'如果您使用1.9.0之前版本的jQuery,則應該使用type。' –