如何解决API-使用GET添加,编辑和删除?
| 我正在构建一个API,并希望Ajax能够与之交互。 API需要允许插入,更新和删除数据。允许通过GET执行任何这些操作是一个好主意吗? 例如:http://api.domain.com/insert_person/?name=joe 我最初的计划方式是将GET用于我的\“ getting \”方法(基本上只是一个简单的数据库查询),而POST用于添加,编辑和删除。问题是JS同源策略,这会使Ajax很难与我的API交互。 GET(通过JSONP)有一个jQuery解决方法。 有什么建议吗?解决方法
一言以蔽之:否
GET应该始终仅用于检索信息,并且永远不应该有副作用。
这是几乎所有Web api的最佳做法,并且与动词的意图以及现有软件对事物的期望方式有关。
,如果您试图绕过相同的原始策略,则通过JSONP进行GET是唯一可能的前端解决方案。如果您可以控制后端,则可以设置与页面位于同一域的代理服务,但可以往返于API服务。
如果您要沿着JSONP GET路径前进,请确保您已阅读XSS和CSRF。
,添加另一层来处理您的代码并与您的数据库进行交互(不同的域)。
您仍将使用POST,并且可以使用所使用的语言向服务器端的db发出请求,例如php将使用curl。(向其他域发出请求)
如果您允许使用get与您的数据库进行交互,那么任何人都可以使用所需的命令轻松键入url,因此可以避免使用。
,正如其他人指出的那样,不应将GET用于具有诸如插入,更新和删除之类的副作用的操作。
要允许跨域使用您的API,请查看跨域资源共享,尽管目前浏览器仅部分支持跨域资源共享。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。