2013-10-15 155 views
0

我想我在這裏追逐我的尾巴,並希望有人讓我直接。在我的Javascript程序中,我需要將使用AJAX的HTML字符串發佈到我的PHP服務器。 HTML字符串可能包含嵌入的圖像數據。HTML字符串和編碼

1部分:簡單的情形 - HTML字符串是純文本 - 例如 - 「Mmiz的問題」

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

如果我什麼都不做WRT編碼時,POST似乎撇號後,揍一切,它只是「 Mmiz「在服務器端。使用escape()也沒有解決問題!我應該如何安全地將html字符串傳輸到服務器?

第2部分:

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

這是去了解它的正確方法:如果在HTML的圖像數據,我使用基地64 URL編碼安全的圖像數據嗎?

感謝您的指導!

Mmiz

+0

至於第1部分,你還應該使用encodeURIComponent,它會阻止服務器腳本在'&'之後將數據作爲分隔字段。 – davidkonrad

+0

所以遵循你的建議 - 在我的jQuery代碼中,我做了以下encodeURIComponent(escape(html_str))。然後在PHP服務器端,我解碼它:urldecode(encod_str)。不用找了。在服務器端仍然以MMiz '的形式出現。哦,我有ContentType指定爲:application/x-www-form-urlencoded;字符集= UTF-8。 – user1072910

回答

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")來檢索數據,沒有任何問題。