我正试图通过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
。
答案 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"};
}