Angularjs 获取vs POST在何处使用哪种方法

Angularjs 获取vs POST在何处使用哪种方法,angularjs,asp.net-mvc,rest,asp.net-web-api,Angularjs,Asp.net Mvc,Rest,Asp.net Web Api,对于在Ajax调用中使用GET和POST的理想情况,我有点困惑。以前,当我们将ASP.NET MVC与KnockoutJS一起使用时,我们习惯于从jQuery调用自定义$.postJson(url、数据、回调)到MvcController(即使对于GET操作也是如此)。最近,我们将ASP.NET Web API与AngularJS一起使用,将$http(url,method)与GET一起使用,并在url属性中传递搜索参数,并使用FromUri属性在ApiController中捕获它们 现在我的问

对于在Ajax调用中使用
GET
POST
的理想情况,我有点困惑。以前,当我们将
ASP.NET MVC
KnockoutJS
一起使用时,我们习惯于从
jQuery
调用自定义
$.postJson(url、数据、回调)
MvcController
(即使对于
GET
操作也是如此)。最近,我们将
ASP.NET Web API
AngularJS
一起使用,将
$http(url,method)
GET
一起使用,并在url属性中传递搜索参数,并使用
FromUri
属性在
ApiController
中捕获它们


现在我的问题是,使用
GET
POST
的理想场景和最佳实践应该是什么(请不要从
CRUD
操作角度回答)。

如果要添加和更新,请使用POST。 如果要取回,请使用GET

最佳做法:
对于登录,请使用POST提交凭据,以隐藏用户名/密码,使其不被嗅探。

对于这些方法在服务器端应执行的操作,有一个正式的定义:

由于这种形式化的定义,任何理想的答案最终都会听起来像一个粗糙的答案。GET不应该修改数据,它应该只检索数据。POST旨在更改服务器上的数据

在实践中,我们经常发现自己使用POST作为解决方法,因为GET实际上受到限制,无法在请求中包含内容体。许多数据检索方案可能需要将内容正文发送到服务器。在某些GET场景中,您还可能遇到URL长度问题,这可能会导致您在POST中发送数据。所以,如果您试图检索数据,最好在需要的地方获取并使用POST


虽然我可以使用POST来绕过GET用于数据检索的限制,但我永远不会使用GET来修改数据。

POST不保护用户名和密码不被“嗅探”,它可能会将其隐藏在查询字符串上,但仍然可以访问。PUT还用于更新,POST用于插入(如果查看最佳实践的话),老实说,我真的不知道为什么他们以前只使用$.postJson(甚至用于搜索操作)。我试图对抗,但似乎每个人都在使用它而没有思考太多。竖起大拇指!几乎可以概括一切。谢谢