Ajax如何隐藏webAPI URL中的参数和值?

时间:2017-04-12 22:40:39

标签: c# ajax api

我记得我在某处读过,当通过ajax向API提交参数值时,有一个选项,因此它们不会显示在URL中。我已尝试将它们放入data中,如:

$.ajax({
  type: "GET",
  url: "/api/myController/myLunch",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  data: {"tableID":111, "firstCourse": "soup", ... },  // show up in header but not working
  header: {"tableID":111, "firstCourse": "soup", ... },  // neither
   success: function (data) { ... }
});

Controller get方法:

[HttpGet]
[Route("myLunch")]
public IHttpActionResult myLunch(int tableID, string firstCourse, ...)
{ ... }

我一直回到404。基本上我不想这样看:

/api/myController/myLunch?tableID=111&firstCourse=soup

我只想看到

/api/myController/myLunch

2 个答案:

答案 0 :(得分:0)

您可以使用POST方法从URL隐藏参数。实际上,GET和POST方法之间的主要区别是GET在URL中显示参数,而POST从URL中隐藏参数。同时,您可以同时使用两者发布数据。

答案 1 :(得分:0)

您可以使用请求方法 POST 从 Url 隐藏参数。同时,如果您使用 GET 方法,它将在 url 中将 params 显示为查询参数。