2012-03-23 116 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']); 

谢谢大家!对于建议