jquery - .net webapi HttpGet 与 HttpPost。为什么使用 HttpGet?

标签 jquery ajax asp.net-web-api

为什么在WebApi框架中使用HttpGet而不是HttpPost?

我很清楚 Post 或 Get 类型之间的区别,一个是通过 url,另一个不是(作为基本理解)

但我也知道主要区别(可以在服务器上编辑)是 Post 对发送到服务器的数据大小没有任何限制,而 GET 类型有限制

(2000 characters (IE's limit.)) Is there a limit to the length of a GET request?

当我编写大量数据时,有时我很沮丧地通过 GET 发送超过限制数据大小的数据,并发现服务器发送错误和错误是因为大小,所以我必须更改我的方法POST 类型。

namespace somenamespace.Controllers
{
    public class someController : ApiController
    {
        [HttpPost] //<--- change all
        public somenamespace.Class getSomething(string key1, string key2) {
            return new someblabla.Models.Class.Class(key1,key2).getSomething();
        }
    }
}

那么当有人想使用 GET 而不是 POST 时,为什么会是一个好理由,而 POST 始终可以在任何限制下工作。

我只讨论 WEB API .net。我知道如果您想通过 url 字符串(通过页面到页面发送)或类似的方式请求变量和信息,GET 可以更容易实现。

最佳答案

最终,您始终可以做任何您想做的事情,但遵循一些标准是很好的做法 - 不仅仅是为了标准,而是为了使您的代码可预测且易于使用。

当您调用 RESTful API 时,人们会假设,例如:

  • 任何 GET 请求都只会获取数据 - 不会修改、不会删除、不会创建

  • 任何 POST 请求都会创建资源

  • PUT 请求将更新资源,您可以根据需要多次执行它们,而不会产生副作用

  • DELETE 将删除资源

这让每个人的生活变得更轻松,并且是您和客户之间的一种契约(Contract)。

我强烈建议您阅读此有关 API 的 RESTful 设计的资源 - 您将了解人们遵循约定的原因:

http://info.apigee.com/Portals/62317/docs/web%20api.pdf

关于jquery - .net webapi HttpGet 与 HttpPost。为什么使用 HttpGet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16901944/

相关文章:

javascript - 使用 AJAX 处理用户导航

javascript - 如何使用 jasmine 在 XHR 中模拟超时事件?

jQuery 根据百分比淡出图像部分?

javascript - Jquery 和克隆 html 部分?

javascript - 如何重定向来自ajax请求的响应

rest - 如何在自托管的 o​​win 服务器中动态创建 Web API(REST api)?

asp.net - Microsoft.Data.Edm 与 Microsoft.OData.Edm : what is the difference?

c# - HttpRequestMessage.GetClientCertificate() 在 Web API 中返回 null

javascript - jQuery 适用于 Heroku,但不适用于 Rails localhost

javascript - 在对象中的各个元素上使用 jQuery .append