我正在努力让自己托管的asp.net web api服务器接到一个在控制器上发帖的电话。
$.ajax({
url: mySelfHostedAspWebApi, //i.e. http://1.2.3.4:1234/
type: "POST",
data: cmd,
contentType: 'application/json',
success: (function(scanCmd) {
}), //success: (function (scanCmd){
});// $.ajax({
C#中的asp.net核心控制器非常简单。
...
[Route( "" )]
[HttpPost]
public HttpResponseMessage Post(Command cmd)
{
ASSERT(null,cmd); // <=== problem here !!!
if(cmd=="go") Go(";-)");
...
在我的一个旧项目中,我遇到了类似的问题...而且解决方法是在系统上打开一些文件,控制该帖子是否可以用于我自己的应用程序并在行上写POST控制对我的应用程序的访问。 (我只是记不起它是什么文件......)
答案 0 :(得分:1)
我认为您错过了FromBody
参数的cmd
参数声明,如下所示:
[Route( "" )]
[HttpPost]
public HttpResponseMessage Post([FromBody] Command cmd) // <<- tweak here
{
ASSERT(null,cmd); // <=== no problem here :-)
if(cmd=="go") Go(";-)");
...
答案 1 :(得分:0)
问题在于使用了ajax调用中的contentType:'application / json'。 - 我删除了它,并获得了数据。