ASP.NET MVC ajax请求未找到错误

时间:2014-08-13 12:33:40

标签: jquery ajax asp.net-mvc

我正试图通过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

3 个答案:

答案 0 :(得分:0)

更改您的AJAX网址,使其类似于以下格式:

url: "controller/action"

所以在你的情况下,

url: "MyController/GetData"

您还可以尝试以不同方式格式化数据字段。例如:

data: "&skip=" + "5",

答案 1 :(得分:0)

使用此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")

答案 2 :(得分:0)

添加属性[FromBody],操作选择器不会查找查询字符串参数

[HttpPost]
public ActionResult GetData([FromBody]string skip)
{
    return new JsonResult() {Data = "test"};
}