Javascript 在AJAX方法中是否比POST更好?

Javascript 在AJAX方法中是否比POST更好?,javascript,jquery,ajax,post,get,Javascript,Jquery,Ajax,Post,Get,我想知道,为什么我们还在AJAX请求中使用GET方法,例如: $.ajax({ type: "GET", url: "SomeController/GetSomething", data: { id: 100} }); GET很方便,当你们想在url中存储数据时,当你们查询Google时,你们想把那个查询发送给朋友或其他任何人。另一方面,我们有安全漏洞。它们不是很大(我可以说它们是障碍),但当您不想显示表单数据时,使用POST会稍微好一些。此外,POST可以存储任何类型的数据,控制

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

$.ajax({
  type: "GET",
  url: "SomeController/GetSomething",
  data: { id: 100}
});
GET很方便,当你们想在url中存储数据时,当你们查询Google时,你们想把那个查询发送给朋友或其他任何人。另一方面,我们有安全漏洞。它们不是很大(我可以说它们是障碍),但当您不想显示表单数据时,使用POST会稍微好一些。此外,POST可以存储任何类型的数据,控制数据大小,并以某种方式隐藏传递的变量


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

正如您所说,GET不安全,但它允许我们复制和粘贴链接并获得相同的结果。POST更安全,因为它不直接显示参数,它仍然需要在后端工作以堵塞所有漏洞。

关键是不要忘记为什么一个称为“GET”,另一个称为“POST”

GET是可访问的,因此不适合任何敏感的东西,但易于直接操作


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

这只是我的观点:

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

现在,来回答你的问题“是不是变得更好…”


我想说的是,就像同步http请求一样,当用户或应用程序需要获取数据时,应该使用GET,当用户的应用程序需要发布数据时,应该使用POST(为了持久性-在会话中(如登录)或数据库中,等等)。所以这实际上更多的是语义上的差异。实际上,如果您愿意,您可以使用post处理所有事情。

当使用
post
XHR时,您使用了两个步骤:首先发送标题,然后发送数据,但是您使用Ajax进行响应,对吗?那么,既然可以使用一步流程(
GET
XHR),为什么还要使用两步流程呢

此外,AFAIK、
GET
请求是可缓存的,
POST
不是

最后但并非最不重要的一点,正如一些人指出的:HTTP动词确实有其含义


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

GET表示可以在URL中看到参数;不是这样的。GET有一个最大长度限制(依赖于服务器:2KB-8KB);区别不在于你如何使用它,而在于它们应该如何使用:GET=给我id为100的“某物”。POST=创建id为100的内容。不过,这主要是针对RESTful服务的。另一个原因是你可以复制GET请求,而不是POST请求。当然,这是REST。我太早按enter键了。。。添加到我的评论:-)GET必须比POST快一点,同时没有传递敏感数据