我想我在这里追逐我的尾巴并且会感谢有人让我直截了当。在我的Javascript程序中,我需要使用AJAX将HTML字符串POST到我的PHP服务器。 HTML字符串可能包含嵌入的图像数据。
第1部分:简单案例 - HTML字符串只是文本 - 例如 - “Mmiz的问题”
<p>Mmiz's question</p>
如果我没有做任何编码,那么POST似乎会破坏撇号之后的所有内容,它只是服务器端的“Mmiz”。使用escape()也没有解决问题!我应该怎么做才能安全地将html字符串传输到服务器?
第2部分:如果html中有图像数据,我使用以下64位URL安全编码图像数据:
encodeURIComponent(str).replace(/'/g,"%27").replace(/"/g,"%22");
这是正确的方法吗?
感谢您的指导!
Mmiz
答案 0 :(得分:0)
我的猜测是您将数据作为GET数据或表单数据发送。在任何一种情况下,&
都标记参数的结束和下一个参数的开始。你必须编码这个。此外,对其他字符进行编码也是一个好主意,例如使用encodeURIComponent
。
那就是说,你可能想要研究另一种方法。例如,我喜欢直接将数据提交到服务器而没有任何复杂情况,因此请求看起来像:
POST /somefile.php HTTP/1.0
Host: example.com
Content-Type: text/plain -- or some relevant type, like application/json
Content-Length: 13
Hello, World!
然后在服务器端,在这种情况下在PHP中,我可以使用file_get_contents("php://input")
来检索数据,没有任何问题。