【问题标题】:Sanitizing POST data in AJAX request [duplicate]在 AJAX 请求中清理 POST 数据[重复]
【发布时间】:2014-03-02 11:56:53
【问题描述】:

我正在发送带有 POST 参数的 AJAX 请求(没有 JQuery)。有什么功能可以清理 & 之类的字符吗?

【问题讨论】:

  • encodeURI 应该可以工作

标签: javascript php ajax


【解决方案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

【讨论】:

    猜你喜欢
    • 2019-10-15
    • 2018-11-11
    • 2014-06-29
    • 2011-05-22
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多