[英]ASP.NET MVC ajax request not found error
我正在嘗試通過Ajax從服務器獲取數據。
這是我的ajax請求:
$.ajax({
type: 'post',
contentType: "application/json; charset=utf-8",
url: '@Url.Action("GetData", "MyController")',
dataType: "json",
data: { 'skip': '5' },
success: function (data) {
alert(data);
},
error: function (jqXHR, textStatus, errorThrown) {
alert("error: STATUS = " + textStatus + "ERROR = " + errorThrown);
}
});
和我的行動:
[HttpPost]
public ActionResult GetData(string skip)
{
return new JsonResult() {Data = "test"};
}
使用此代碼,我得到404 not found error
,當我刪除HttpPost
屬性時,我得到了Internal Server Error
。
更改您的AJAX網址,使其類似於以下格式:
url: "controller/action"
所以就你而言
url: "MyController/GetData"
您也可以嘗試以其他方式格式化數據字段。 例如:
data: "&skip=" + "5",
使用此Javascript函數可獲取所有類型的URL:
function rootUrl(url) {
var _rootUrl = '@Url.Content("~")';
var x = url;
if (url.indexOf(_rootUrl) != 0) {
x = _rootUrl + "/" + url;
x = x.replace(/\/\//g, "/").replace(/\/\//g, "/");
}
return x;
};
然后將AJAX請求中的URL用作:
url: rootUrl("MyController/GetData")
添加屬性[FromBody],並且動作選擇器將不查找查詢字符串參數
[HttpPost]
public ActionResult GetData([FromBody]string skip)
{
return new JsonResult() {Data = "test"};
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.