我使用html,php,javascript(带有查询和ajax)和mysql开发了一个网页。在这个页面中,我有一个登录系统和一些管理用户的表单(更改密码,注册,搜索,编辑和删除)。对于这些操作中的每一个,我都使用了ajax(使用POST方法)来避免重定向。一切正常,但我想在每种情况下使用最合适的方法。 在每种情况下,我都有一个带有一些输入和一个按钮的表单来提交数据(我在onclick事件中调用一个函数)。然后,在这些函数中,我使用ajax使用POST发出请求并将一些数据传递给php文件,从数据库中选择,插入,更新或删除数据。
关于每种方法的定义,我认为最好的选择是POST用于注册,PUT用于更改密码和编辑用户,GET用于搜索(可能是登录)和DELETE用于删除用户。但是,我已经读过登录最好使用POST,因为如果你使用GET你传递URL中的数据(尽管我使用ajax来避免重定向,所以我认为URL是相同的)。我还读过一些浏览器不支持PUT或DELETE,所以最好不要使用它们。此外,我认为ajax不允许在delete方法中传递数据。
我已经看到很多人倾向于使用POST,但我不知道这是不是一种好习惯,或者默认是完成了什么。
每项行动的最佳/最佳/最合适的选择是什么?
编辑:更多信息:搜索,注册,编辑删除功能仅适用于管理员角色。其余用户登录并可以更改密码。
当管理员进行搜索(搜索注册用户,使用某个字段值,即名称为" Juan"的用户)时,会显示一个表格,然后他可以点击编辑或删除(为每个结果显示这些按钮)并提示窗口或警报,但网址始终相同且不刷新。我有一个或多或少的静态页面,其中页眉,页脚和菜单是固定的,唯一改变的是内容。这就是我使用ajax的原因之一。
答案 0 :(得分:1)
区别在于它的显示方式。在这种情况下,我不相信你需要删除或放置。除了搜索之外,您只需使用帖子即可。根据定义,发布变量不会显示在地址栏中。您不希望别人发送链接以访问该帐户我确定,因为变量对用户隐藏,但通过请求方法或您喜欢使用的任何内容都可以轻松访问在你的最后。在搜索中,获取最有可能是最好的。如果有人想与他们的朋友分享搜索结果集,他们可以轻松访问网址并发送它,因为搜索输入只是在页面顶部的地址栏中。如果我没有正确回答这个问题,您能否发送一个代码示例?我希望这有帮助!
我不确定我完全理解你提出的问题是什么。我相信你要问的是,"为什么在提交表单时网址没有变化?"告诉我这是否正确。如果这是您要问的问题,我想提醒您确保您的方法是GET。告诉我,如果那不是您打算提出的问题,我会编辑答案。