0

我想我在这里有点追赶我的尾巴,希望有人能让我直截了当。在我的 Javascript 程序中,我需要使用 AJAX 将 HTML 字符串发布到我的 PHP 服务器。HTML 字符串中可能包含嵌入的图像数据。

第 1 部分:简单案例 - HTML 字符串只是文本 - 例如 - “Mmiz 的问题”

<p>Mmiz&#39;s question</p>

如果我什么都不做编码,POST 似乎会破坏撇号后的所有内容,它只是服务器端的“Mmiz”。使用 escape() 也没有解决问题!我应该怎么做才能安全地将 html 字符串传输到服务器?

第 2 部分:如果 html 中有图像数据,我使用 64 位 URL 安全编码图像数据:

encodeURIComponent(str).replace(/'/g,"%27").replace(/"/g,"%22");

这是正确的方法吗?

谢谢指导!

米兹

4

1 回答 1

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")用来检索数据,没有任何问题。

于 2013-10-15T21:57:41.147 回答