猿问

使用POST从ajax获取数据

现在我被困在一个问题上。我想这是一个非常基本的事情。但是经过几个小时的研究,如果有人能给我一个快速的建议,那就太好了。所以我试图从我的 api (C#) 调用我的 PUT 方法


    [HttpPost]

    public String Post(String id)

    {


        return id;

    }

当我按下按钮时会调用它。按钮功能是这样的:


<script>

function sendData() {

    $.ajax({

        url: '/api/values',

        type: 'POST',

        data: {'id':"100014"},

        dataType: 'json',

        contentType: 'application/json',

    });

}

如果我调用 GET 方法,一切正常。但是尝试调用 POST 方法只会返回 HTTP Post 不支持该资源。我用 Postman 测试了这个方法。这里 Post 方法有效。但是我不想将这些数据传递到 Url 而是从 Ajax 传递到数据。


如果有人可以帮助我,那就太好了。


编辑: 我只是尝试了一些东西。我的最终结果是这样的:


        [HttpPost]

    public async Task<IHttpActionResult> Post(int id)

    {

        var rawMessage = await Request.Content.ReadAsStringAsync();

        return Ok(rawMessage);

    }

对我来说效果很好。


慕容708150
浏览 168回答 3
3回答

森栏

问题是找不到您的路线。尝试&nbsp; &nbsp; &nbsp;[HttpPost]&nbsp; &nbsp; &nbsp;[Route("getValues")]public String Post(String id){&nbsp; &nbsp; &nbsp; &nbsp; return id;&nbsp; &nbsp; }您甚至可以在控制器类之前添加:[RoutePrefix("api/values")]然后用url: '/api/values/getValues',

月关宝盒

请检查您是否引用了正确的库。如果您正在使用,System.Web.Mvc可能会出现此问题。尝试删除它并System.Web.Http改为引用。希望这能解决您的问题。

缥缈止盈

你应该用Ok()method包装你的输出。就像是使用您的退货类型作为 IHttpActionResult&nbsp;[HttpPost]&nbsp; &nbsp; public IHttpActionResult Post(String id)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return Ok(id);&nbsp; &nbsp; }
随时随地看视频慕课网APP
我要回答