2

我正在使用tinymce。我正在通过这样的 jquery ajax 调用发送数据

// update textarea from tinymce
tinyMCE.triggerSave (false,true);
$.post ('', $('#page_form').serialize (), function (x){
    var ans = $.parseJSON (x);
    if (ans.success)
    {
// my work

但服务器正在

<p><span medium;="" font-family:="" \'andale="" mono\',="" times;\"="">aiwndiawnduawd </span><strong>waoid</strong></p>

但它应该得到

<p><span style="font-size: medium; font-family: 'andale mono', times;">aiwndiawnduawd </span><strong>waoid</strong></p>

我从 js 控制台看到 $('.tinymce').val () 返回正确的值,但不知何故 ajax 调用错过了运行中的值

有人遇到过这个吗?或任何解决方案?

4

1 回答 1

3

我也有完全一样的问题。我要疯了!:-( 似乎 JQuery Ajax 请求(我使用 serializeArray 函数)不想接受像“”这样的东西!!!我确定问题不在于 TinyMCE(我尝试“强制”字符串,将其序列化..和“风格”消失了!).. :-(


(编辑)

你在使用 CodeIgniter 框架吗?如果是,请查看您的application/config/config.php文件并尝试将$config['global_xss_filtering']参数设置为FALSE ...它对我有用!:-)

如果是您的情况,请记住在 POST 和 GET 上使用 XSS 过滤,您必须通过脚本攻击来保护(请访问CodeIgniter XSS 手册页)。

否则尝试通过添加/删除斜杠(在 jQuery 和 PHP 中)进行调试,或者手动查看类似这样的值(在 ajax 之前和之后):

    <input type="hidden" name="test" id="test" value="<p><span style="color:#f00;">test</span></p>" />
于 2012-07-10T15:21:22.963 回答