在 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 数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

ajax/jquery POST 请求的不必要重复

Ajax Post请求失败[重复]

Laravel中的AJAX POST请求[重复]

jQuery post ajax函数[重复]

如何使jquery“$ .post”请求同步[重复]

AJAX 中的 GET 与 POST?