在AJAX方法中,GET比POST更好吗?

时间:2014-09-22 13:41:40

标签: javascript jquery ajax post get

我想知道,为什么我们仍然在AJAX请求中使用GET方法,例如:

$.ajax({
  type: "GET",
  url: "SomeController/GetSomething",
  data: { id: 100}
});

当您想要在网址中存储数据时,当您查询Google并且想要将该查询发送给朋友或其他任何内容时,GET非常方便。另一方面,我们存在安全漏洞。它们并不大(我说它们是障碍物),但是当你不想显示表单数据时,使用POST会稍微好一些。此外,POST可以存储任何类型的数据,控制数据大小并以某种方式隐藏传递变量。

总是在地方使用GET是一个很好的解决方案,这些地方不是“公共”(搜索栏,文章页面,用户个人资料......)并在其他地方使用POST?使用这种方法,所有AJAX查询都应该使用POST方法发送。

4 个答案:

答案 0 :(得分:1)

使用POST XHR时,使用两步过程:首先发送标头然后发送数据,但是使用Ajax进行响应,对吧?那么,当您可以使用一步过程(GET XHR)时,为什么要使用两步过程?

此外,AFAIK,GET请求可缓存,POST不可。

最后但并非最不重要,正如一些人所指出的那样:HTTP动词确实有意义。

继续使用GET XHR从服务器获取数据,并使用POST XHR发送数据。

答案 1 :(得分:0)

就像你说的那样,GET并不安全,但它允许我们复制和粘贴链接并获得相同的结果。 POST不直接显示参数的方式更安全,它仍然需要在后端工作以插入所有漏洞。

答案 2 :(得分:0)

关键是不要忘记为什么一个叫“GET”而另一个叫“POST”。

GET是可访问的,因此对于任何敏感的东西都不好,但是很容易直接操作。

POST应该用于向服务器端提交敏感或“冗长”的数据。

答案 3 :(得分:0)

这只是我的观点:

精明的用户如果想知道正在发布的数据,将始终能够准确发现http请求期间正在传输的数据。您真正需要的唯一工具是现代浏览器中内置的工具。如果你使用HTTPS传输,那么第三方将能够识别GET参数,但不能识别POST数据,所以我认为你是正确的,敏感数据应该只作为POST发送。否则,作为安全工具,POST over GET提供与密码输入上的密码掩码类似的功能(防止有人通过您的肩膀查看您的数据)。

现在,对于你的问题" GET更好......?"

我想说就像同步http请求一样,当用户或你的应用程序需要获取数据时你应该使用GET,当用户的应用需要发布时你应该使用POST 数据(用于持久性 - 在会话中(如登录)或数据库等)。所以它更像是一种语义差异。实际上,如果你愿意的话,你可以使用帖子。