AJAX POST vs GET

问题描述 投票:1回答:1

我想知道如果我在AJAX调用中使用GET或POST真的有什么区别。

我正在使用AJAX删除具有指定ID的项目。不知何故,POST似乎是一个更合适的选择。但是对于Razor Pages,AJAX POST需要几个步骤才能解决cross site request forgery measures

如果我只是在这里GET或POST,这有什么区别吗?还是如果我没有,我有没有击中任何反模式?

c# ajax asp.net-core post razor-pages
1个回答
2
投票

有很多观点可以回答您的问题“如果我只是在此处GET或POST,这有什么区别吗?” 总之,是的,这有所作为。

GET和POST都容易受到CSRF攻击。通过使用GET,您可以创建更广泛的攻击面。例如,电子邮件中的IMG标签可以对毫无戒心的用户运行DELETE api。使用POST使其变得不那么琐碎。与使用GET相比,使用不支持防伪的post会更好。理想情况下,您要使用带有防伪令牌的POST。

其他注意事项可以包括:

  • 缓存如何处理此请求
  • 遵守REST原则(假设您打算采用“ REST”全/类似设计)
  • 通常假设get不能直接操纵服务器端状态
  • 理论上,URL标识资源的位置,如果您使用get删除该资源,那么下次调用该get会发生什么?
  • 获取不会受到CORS的保护,因为假定它不会修改状态,浏览器将执行GET且不会将响应返回到违规站点。使用POST,浏览器将使用OPTIONS动词运行CORS预检检查,以确保在服务器接收到带有动词POST的请求之前,服务器返回的CORS策略允许该请求。
© www.soinside.com 2019 - 2024. All rights reserved.