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

时间:2017-01-05 15:35:34

标签: angularjs asp.net-mvc rest asp.net-web-api

对于使用GETPOST进行Ajax调用的理想情况,我有点困惑。以前,当我们将ASP.NET MVCKnockoutJS一起使用时,我们过去常常从$.postJson(url,data,callback)拨打自定义jQueryMvcController(即使是GET操作)。最近,我们将ASP.NET Web APIAngularJS一起使用,并将$http(url,method)GET一起使用,并在我们的url属性中传递搜索参数,并使用{{1}在ApiController中捕获它们属性。

现在我的问题是,使用FromUri&的理想场景和最佳做法应该是什么? GET(P.S。不要从POST运营角度回答。)

2 个答案:

答案 0 :(得分:5)

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

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

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

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

答案 1 :(得分:-3)

如果要添加&更新。 如果你要去取,请使用GET。

最佳实践: 登录时,使用POST提交隐藏用户名/密码的凭据,以免被嗅探。