2012-03-23 120 views
4

我在使用jQuery FORM提交表單並進行POST提交時遇到以下問題。通過AJAX問題發送帶HTML評論的帖子請求

當我輸入到輸入字段中的HTML註釋:

< !-- #without space after < symbol 

請求永遠不會提交,它永遠等待。

我相信原因是HTML註釋破壞了一個XMLHttpRequest對象,並且它永遠不會被PHP解析。 我可以在提交之前解析出輸入字段中的html註釋,但有些東西告訴我,它不是解決這個問題的最佳解決方案。 有沒有人知道避免這個問題發生的最佳解決方案?

我的表單的HTML代碼如下:

<form method="post" action="/orders/place" class="form a-center" id="orderForm"> 
<input type="text" x-webkit-speech="" value="Sign text" name="sign" id="sign"> 
<textarea rows="7" name="comments" id="comments">Order comments</textarea> 
<p> 
    <button id="orderSubmitBtn" class="button" type="submit"> 
</p>   
</form> 

的JavaScript是一種簡單的jQuery表單提交:

var options = { 
dataType: 'json', 
success: function(data) { 
    if (data.ok) { 
    //do some action here! 
    } 
} 
}; 
$('#orderForm').ajaxSubmit(options); 

當它失敗的唯一情況是,當我輸入的情況下html評論標籤。

而且,這裏是鏈接到包含窗體http://sandsign.com的頁面 - 解析只是評論(剛剛嘗試進入<!有跡象文字記者放開按鈕上的文字)

+0

的HTML註釋不應該的問題,你能告訴一些代碼 – RoToRa 2012-03-23 10:47:43

+0

@RoToRa,肯定 - 它只是一個簡單的jQuery表單提交:? 'VAR選項= { \t數據類型: 'JSON', \t帥客SS:功能(數據){ \t \t如果(data.ok) \t \t { \t \t \t //做一些動作了! \t \t} \t} }; $('#orderForm')。ajaxSubmit(options);' 它也一直有效!唯一的情況是,當我輸入一個HTML評論時,就是這種情況。 – 2012-03-23 11:43:06

+0

也是HTML。請通過編輯將代碼添加到您的問題中。 – RoToRa 2012-03-23 11:50:14

回答

1

感謝RoToRa - 我將我的研究範圍縮小到我要發佈的PHP腳本。並意識到它在Zend的過濾器類:-(錯誤

與Zend框架下的PHP代碼出於某種原因永遠凍結在接受< - 作爲一個POST參數:!

$filterChain = new Zend_Filter(); 
$filterChain->addFilter(new Zend_Filter_StringTrim()) 
      ->addFilter(new Zend_Filter_StripTags()); 
$this->getHelper('viewRenderer')->setNoRender(); 
$signFiltered = $filterChain->filter($_POST['sign']); 

謝謝大家!對於建議