在 AJAX 请求中清理 POST 数据[重复]
Posted
技术标签:
【中文标题】在 AJAX 请求中清理 POST 数据[重复]【英文标题】:Sanitizing POST data in AJAX request [duplicate] 【发布时间】:2014-03-02 11:56:53 【问题描述】:我正在发送带有 POST 参数的 AJAX 请求(没有 JQuery)。有什么功能可以清理 & 之类的字符吗?
【问题讨论】:
encodeURI
应该可以工作
【参考方案1】:
您的意思是清理还是编码?如果您的意思是编码,请使用:
encodeURIComponent(value);
在您的脚本中,并在 php 中使用:
urldecode($_POST['key']);
解码值。如果您的意思是消毒,请详细说明。
【讨论】:
你不需要在 PHP 中使用urldecode()
。填写$_POST
时自动完成。【参考方案2】:
您真的不需要在modern browser 中这样做:
var xhr = new XMLHttpRequest;
xhr.open("POST","yourURL");
xhr.onload = function(data) /*onload hook */;
xhr.send(keyval:"data here"); // data here!
如您所见,您可以将一个对象传递给.send
方法,它会发送该对象,您根本不需要在 POST 正文(或 GET url)中编码或弄乱 URI 组件。
你当然也可以发送表单数据
【讨论】:
此外,实际上应该在服务器端对数据进行始终的清理/清理(如“保护并使其值得信赖”)。您永远不能相信来自客户端代码的数据的完整性。 这是完全错误的。您不能将普通对象传递给xhr.send()
。见developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send【参考方案3】:
我认为您正在寻找的是这样的:
encodeURIComponent
【讨论】:
以上是关于在 AJAX 请求中清理 POST 数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章