【发布时间】:2020-03-11 13:12:23
【问题描述】:
我正在尝试使用 ajax 调用一个简单的方法,如下所示:
[Route("v1/[controller]")]
[ApiController]
public class FooController : Controller
{ [HttpPost]
public FooDTO Add(Foo Foo)
{
FooDTO objFooDTO = null;
}
}
public class Foo
{
public int ID {get; set;}
public string Title {get; set;}
}
Ajax 请求如下:
var obj = {
"ID": 0,
"Title": "Foo Bar"
}
$.ajax({
type: "POST",
url: "http://localhost:8001/v1/Foo",
data: obj,
async: false,
dataType: "Json",
crossDomain: true,
contentType: 'application/x-www-form-urlencoded',
cache: false,
success: function (resp) {
},
error: function (e) {
}
});
它与POSTMAN 一起工作正常,但是当我尝试通过ajax 访问时,错误是400 错误请求The input is not valid。有什么我想念的吗? jquery 版本是1.12.0。
【问题讨论】:
-
你能发布一个邮递员截图,网址可见吗?你在 ajax 中的 url 不应该是: url: "localhost:8001/v1/Foo/Add" 吗?
-
@Nemanja Todorovic 不,它不应该是 /Add 我已经设置了一个路由
[Route("v1/[controller]")] -
@Nemanja Todorovic 我从邮递员那里打来的同一个网址
-
你没有用
HttpPostAttribute装饰Add方法。 -
@Chris Pickford 抱歉,我在发布问题时错过了它。刚刚更新。
标签: c# ajax asp.net-core .net-core