对于使用GET
和POST
进行Ajax调用的理想情况,我有点困惑。以前,当我们将ASP.NET MVC
与KnockoutJS
一起使用时,我们过去常常从$.postJson(url,data,callback)
拨打自定义jQuery
到MvcController
(即使是GET
操作)。最近,我们将ASP.NET Web API
与AngularJS
一起使用,并将$http(url,method)
与GET
一起使用,并在我们的url属性中传递搜索参数,并使用{{1}在ApiController
中捕获它们属性。
现在我的问题是,使用FromUri
&的理想场景和最佳做法应该是什么? GET
(P.S。不要从POST
运营角度回答。)
答案 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提交隐藏用户名/密码的凭据,以免被嗅探。