2010-10-14 70 views
1

我正在創建一個WYSIWYG編輯器,通過AJAX保存頁面。AJAX處理不當輸入

它的工作原理是通過編輯器將元素(文本,圖像等)添加到DIV,當您單擊「保存」時,它通過AJAX將該DIV的HTML發送到採用此HTML的腳本並寫入它到「index.html」,所以它會更新頭版。

我的問題:如果DIV有一個背景圖像,AJAX頁面擰緊。我所猜測的是所有引號(<div style="background-url('picture.png');">)。它處理一切正常(圖像,帶有單引號和雙引號的文本等)。

我正在瀏覽Firebug,它報告說它正在將'picture.png'更改爲&quot;picture.png&quot;。我已經嘗試在發送之前替換&quot;,但它仍然在所有引號的另一端。

有沒有人有任何想法?

回答

0

什麼語言正在處理您的AJAX的另一端?如果是PHP,請查看htmlentities()。此外,&符號(&)在過去已經打破了我的ajax請求。

+0

這是PHP。如果我檢查Firebug的輸出,它告訴我它周圍發送了"。如果我檢查另一端(PHP AJAX接收端)的輸入,它會給我$ _POST數組中的破壞代碼。 – Jordan 2010-10-14 01:51:48

+0

您是否嘗試用反斜槓轉義引號? \或者,對實體進行硬編碼......這裏有些可能有所幫助:http://htmlhelp.com/tools/validator/problems.html – Ben 2010-10-14 02:49:40

+0

我不知道爲什麼我從來沒有想到過。這絕對是"中的&符號。我早些時候嘗試過,但我不小心忘記了將它們全部替換而不是第一個。傻我! :)謝謝,史蒂夫。對於有類似問題的其他人,運行JS函數替換(/ "/g,「\'」)到您的字符串以將所有「"」替換爲「\」。 – Jordan 2010-10-14 04:15:01

0

嘗試爲之傾倒服務器端 - 我期望的是與編碼的URL(即編碼%)的報價和/或服務器端軟件添加反斜槓