Ajax 中的 GET 与 POST

对于 阿贾克斯请求,走开职位的区别是什么?

我没有看到这两者之间有什么区别,除了当我使用 走开时,参数是通过 URL 发送的,这对我来说没有任何区别,因为所有的请求都是在后台发出的,用户没有发现任何区别。

编辑: 删除方法用于什么?

68478 次浏览

如果要通过 HTTPS 发送大量数据或敏感数据,则需要使用 POST。如果它只是一个简单的参数,我将使用 GET。

GET 请求对可以发送的数据量有限制。我忘了确切的数字,但是如果你发送任何实质性的东西,这可能会引起问题。

GET 和 POST 之间的基本区别在于,在 GET 请求中,参数在 URL 中传递,而在 POST 中,参数包含在消息体中。

GET 是为从服务器获取数据而设计的。POST (以及不太知名的朋友 PUT 和 DELETE)是为修改服务器上的数据而设计的。

GET 请求绝不应导致从应用程序中删除数据。如果你有一个链接,你可以点击一个 GET 删除数据,然后谷歌蜘蛛你的网站可以点击所有的“删除”链接。

规范的答案可以在 给你中找到,它引用了 HTML 2.0规范:

如果一个表单的处理是幂等的(也就是说,它没有持久的 可观察到的影响的状态 ) ,那么表单方法应该是 许多数据库搜索没有 可见的副作用,并使理想 查询表格的应用。

如果与窗体处理相关联的服务具有副作用 (例如: 数据库或订阅 服务) ,方法应该是 POST。

在 AJAX 调用中,您需要使用服务器支持的任何方法。您应该始终设计服务器,使修改数据的操作由 POST/PUT/DELETE 调用。其他注释有到 REST 的链接,它通常将 C/R/U/D 映射到“ POST 或 PUT”(Create)/GET (Read)/PUT (Update)/DELETE (DELETE)。

Whether its AJAX or not is irrelevant. Its about the action that you're taking. I'd recommend following the principles of 休息. Which have further provisions for updating, deleting, etc...

许多 Web 服务器限制了可以作为 URL 的一部分传递的数据的长度,因此 GET 请求可能会以难以调试的奇怪方式中断。

此外,大多数服务器软件将 URL 记录在访问日志中,因此如果在 GET 请求中传递敏感信息(比如密码) ,这很可能以明文形式写入磁盘。

从 REST 的角度来看,GET 请求应该没有副作用——它们不应该修改数据。因此,如果只是通过 ID 获取资源,这是有意义的,但是如果要提交对资源的更改,则应该对 http 谓词使用 PUT、 POST 或 UPDATE。

如果传递的参数中包含的字符可能会在 URL 中造成混乱(比如空格) ,那么可以使用 POST。否则,可以使用 GET。

一般来说,如果只是传递一些小参数,那么应该使用 GET。但是对于传递用户提交的信息,如博客条目、文本等,使用 POST 是一个很好的实践。

还有一些框架完全依赖于基于段的 url (比如 site.com/products/133而不是 site.com/products.php?id=333,这些框架为了安全取消 GET 变量的设置。在这种情况下,您将一直使用 POST。

无论使用 Ajax、 HTML forms 还是 curlGETPOST之间的区别都是相同的。以下是相关的定义:

关于我,我更喜欢 POST。我保留获取事件,我知道发送的值仅限于数据,我有“控制”,例如,检索一个 ID 项目。例如,“ getitem? id = 123”,“ delteImtem? id = 123”,... 对于其他情况,当我有一个可由用户填写的表单时,我更喜欢 POST。

正如 Ryan Smith 所说,最好使用 POST 来发送大量的数据,而且在使用其他语言/特殊字符的情况下不用太担心(通常所有的专业 javascript 框架应该不会有任何问题来处理这个问题,但是我认为使用 POST 就不用太担心了)。

对于 REST 透视图,在我看来,您可以将其用于一个新项目(以保持与整个项目的一致性)。

最后,也许网络中使用的一些程序(URL 登录器(例如: 查看员工是否在非授权站点上浪费了时间,...)代理,...)或任何其他类型的工具可以拦截查询。一些将显示在报告中的参数,你已经发送与 GET,认为它像一个不同的网页。但在这种情况下,可能不是你的问题,它的变化从一个项目到另一个!;)

在 CSRF (跨站点请求伪造)攻击中,GET 请求更容易被利用。也就是说,假的 POST 请求需要在用户端启用 Javascript,而假的 GET 请求仍然可以只使用 img、 script 标记。

首先,一般信息。如果只读取数据,使用 GET; 如果对数据库、文本文件等进行了更改,则使用 POST

但问题是,一些浏览器缓存 GET结果。我在 IE7中遇到了 AJAX请求的问题,但是最后我发现浏览器缓存了 GET结果。我重新考虑了这个流程,并将我的请求更改为 POST

因此,如果不想要缓存,就不要使用 GET

(当然你可以在 GET 操作中禁用缓存,但是我不喜欢它)

两者都用于发送一些数据并使用该数据接收一些响应。

获取服务器中的信息存储。我。搜索,推特,个人信息。如果您想发送信息,那么使用 process.php? name = subroto 获取请求发送请求 所以它基本上是通过 url 发送信息。Url 不能处理超过2083个 char。所以对于博客文章你能记住这是不可能的吗?

发布: 发布和获取一样的东西。用户注册,用户登录,大数据发送,博客发布。 如果您需要发送安全信息,然后使用邮件或大数据,因为它不通过网址。

AJAX: $. get ()和 $. post ()包含 $. AJAX ()的子集的特性。

$.Get ()方法,这是 $的一种简写。Ajax ().当使用 $。Get () ,而不是传入对象,而是传入参数。至少需要前两个参数,即要检索的文件的 URL (即‘ test.txt’)和成功回调。

摘要:

$.get( url [, data ] [, success ] [, dataType ] )
$.post( url [, data ] [, success ] [, dataType ] ) // for sending secure or Large information
$.ajax( url [, settings ] )  // More Configaration