GET vs POST在哪里使用哪种方法

ize*_*god 2 rest asp.net-mvc asp.net-web-api angularjs

关于使用GETPOST进行Ajax调用的理想情况,我有点困惑.以前当我们使用ASP.NET MVCKnockoutJS,我们曾经习惯$.postJson(url,data,callback)jQuery我们MvcController(甚至是GET操作)调用自定义.最近,我们正在使用ASP.NET Web APIAngularJS和使用$http(url,method)GET和通过搜索参数在我们的网址属性,并抓住他们ApiController使用FromUri属性.

现在我的问题是,什么应该是使用GET&的理想场景和最佳实践POST(PS不要从CRUD运营角度回答).

Jim*_*m L 5

在服务器端有一个正式的方法定义:https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

由于这种正式的定义,任何理想的答案都不可避免地听起来像CRUD的答案.GET永远不应该修改数据,它应该只检索数据.POST旨在更改服务器上的数据.

实践中,我们经常发现自己使用POST作为解决GET实际上受限于在请求中具有内容主体的事实.许多数据检索方案可能需要将内容主体发送到服务器.您可能还会遇到一些可能导致您在POST中发送数据的GET方案中的URL长度问题.因此,如果您正在尝试检索数据,请选择GET并在需要的地方使用POST.

虽然我可以使用POST来解决GET数据检索的限制,但我绝不会使用GET来修改数据.