在href中存储POST请求的数据 – 不好的做法?
我正在编写一个node.js应用程序,并且有点担心如何构build发送到服务器的发布数据。 例如,当我想删除一个数据项时,我把这个项的id放在href属性中:
<a class='delete' href="1231">Delete this data</a> <!-- href is based on a variable I'm pulling from the server -->
当单击该链接时,我会阻止默认操作,然后运行ajax请求:
//On click + ajax body.on('click', '.delete', function(e){ e.preventDefault(); $.ajax({ type: 'POST', url: '/admin/report/detail/delete', data: {id: $(this).attr('href')}, success: function(){ //Success message }, error: function(){ //Error message } }); });
我想知道,以这种方式使用href属性是不好的做法吗? 如果是这样,那么存储这些数据的最好方法是什么?
改用数据属性。 将它们存储在href中并不是语义的,如果有时需要存储ID,以及在其他时间存储其他数据呢? 您可以根据需要创build任意数量的数据属性,并为其指定语义名称。
<a class="delete" data-id="1231" href="#">
然后在你的javascript:
... data: { id: $(this).data('id') } ...
要么
data: { id: $(this).attr('data-id') }
说实话,你总是要把要删除的logging的ID发送到服务器,但是你这样做。 即使你做数据属性,这不是问题,它是通过AJAX“通过电线”发送数据,所以人们可以看到ID。
你需要思考 – 好吧,这个ID可以改变,不pipe你用什么聪明,人们会find一种方法来改变它,并可能删除不同的客户ID …所以… 总是确保你做相关的安全检查服务器端即ie是当前login的用户能够删除通过发送的用户ID?
- 推/authentication404
- node.js:在获取请求成功validation后,提供文件(特别是apk)
- 对大多数请求使用socket.io是不是很好,或者我应该只用它来将数据推送到客户端?
- 如何将我的网站连接到我的节点应用程序?
- nodejs https api请求错误错误:在TLSWrap.onread(net.js:568:26)处的exports._errnoException(util.js:1018:11)处读取ECONNRESET
- ReferenceError:在Ajax调用尝试redirect用户之后没有定义窗口
- 如何在node.js + ajax中向用户发送自定义错误消息
- AJAX错误:连接被拒绝?
- 当我尝试对我的服务器进行AJAX调用时,某些networking超时