我試圖做一個ajax調用並填充「數據」div與ajax調用的結果, 但我得到一個錯誤說:「服務器錯誤在'/'應用程序中找不到資源說明:HTTP 404.請求的URL:/ Home/GetStuff「 當我使用Firebug查看請求是GET/Home/GetStuff並且答案是404未找到。爲什麼我沒有按照我在ajax調用中的要求做POST?我怎樣才能做POST?
我試過使用$ .post並得到相同的行爲,雖然我沒有檢查jQuery代碼,我假設$ .post是$ .ajax的包裝。
另外我試過Ajax.ActionLink,它工作正常,但我想使用jQuery而不是微軟的ajax js庫。
的代碼如下:
首頁/ TestStuff.aspx
function aClick() {
$.ajax({
type: "POST",
url: $("#MeFwd").href,
data: ({ accesscode: 102, fname: "JOHN", page: 0 }),
dataType: "html",
success: renderData
});
};
function renderData(data) {
$("#Data").html(data.get_data());
}
<div id="Data">
</div>
<div id="link">
<a href="<%= Url.Action("GetStuff", "Home") %>" id="MeFwd" onclick="aClick"> Click Me!</a>
</div>
HomeController.cs
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult GetStuff(int accessCode, string fName, int? page)
{
return "<table><tr><td>Hello World!</td></tr></table>";
}
這將禁用鏈接,但url.Action是導致GET的原因。通過添加像BStuthers在這裏所說的返回錯誤,它應該清除問題。 – JamesEggers 2009-08-13 12:48:25
你不認爲他調用renderData並且不傳遞任何東西也可能是一個問題? – Martin 2009-08-13 12:50:25
我已將onclick =「aClick」更改爲onclick =「aClick(); return false;」它工作得很好。它似乎調用renderData工作得很好,除了它應該說:$(「#Data」)。html(data); 非常感謝大家。 – alexs 2009-08-13 13:14:01