Javascript XHR更新失败,字符串包含一个"#&引用;form post的成功之处

Javascript XHR更新失败,字符串包含一个"#&引用;form post的成功之处,javascript,php,mysql,forms,xmlhttprequest,Javascript,Php,Mysql,Forms,Xmlhttprequest,我正在从标准表单POST(到PHP PDO)转移到异步XHR POST,以使用调用mysql存储过程的准备好的语句更新mysql数据库(再次是PHP PDO) 使用HTMLSpecialCharacters/UTF-8等对输入进行消毒(XHR版本和form post版本)。还在我的PDO连接字符串中设置charset=utf8 问题是,如果我向XHR版本传递一个包含“#”的字符串,则更新失败。返回的错误SQLSTATE[23000]表示完全独立的列不能为null(根据表约束) 输入多个字段,无论

我正在从标准表单POST(到PHP PDO)转移到异步XHR POST,以使用调用mysql存储过程的准备好的语句更新mysql数据库(再次是PHP PDO)

使用HTMLSpecialCharacters/UTF-8等对输入进行消毒(XHR版本和form post版本)。还在我的PDO连接字符串中设置charset=utf8

问题是,如果我向XHR版本传递一个包含“#”的字符串,则更新失败。返回的错误SQLSTATE[23000]表示完全独立的列不能为null(根据表约束)

输入多个字段,无论哪个字段包含“#”,都会违反相同的空约束

请注意,设置为null的字段是最后一个设置为$stmt->bindvalue的字段

另外,我在绑定值中使用了$\u GET[],而不是类似问题中的$\u POST

我知道我可以在写的时候替换“#”,在读的时候替换它(我已经用换行符做了),但是我有一种隐秘的怀疑,我在这里遗漏了一些基本的东西(我对AJAX和PHP有点陌生)

标准表单帖子中的“#”(或换行符)没有问题


TIA适用于任何指针

耶。。。我明白了,或者说实话,我放弃了,尝试了另一种方法。我没有使用application/x-www-form-urlencoded的内容类型将值作为url的一部分发布,而是使用content-type=application/json将数据发布为json

问题不仅消失了,而且我不再需要寻找和更换换行符和#s

json方法似乎是最合乎逻辑、痛苦最少的方法