【问题标题】:jQuery form serialize data missing in CodeIgniter with TinyMCEjQuery 表单使用 TinyMCE 序列化 CodeIgniter 中缺少的数据
【发布时间】:2012-06-28 12:35:56
【问题描述】:

我正在使用 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 调用错过了运行中的值

以前有人遇到过这种情况吗?或任何解决方案?

【问题讨论】:

  • 首先这不是jquery ajax调用这个jquery post调用。第二件事是 .serialize 方法与表单一起使用,如果您使用此 .serialize 方法提供表单 id,它将获取表单的所有数据并生成它的查询字符串。
  • 你对这个问题有什么想法吗?你错过了任何东西
  • 根据您的代码,您没有将数据提交到后端的任何脚本,而且您甚至没有表单,但您正在使用 serialize()
  • @raheelshan $.post() 是一个调用 $.ajax() 的包装器,因此它一个 AJAX 调用。此外,.serialize() 没有 可以与表单一起使用,您可以在包含特定输入元素的 jQuery 对象上调用它。
  • 你能提供一个jsFiddle吗?

标签: javascript jquery ajax codeigniter tinymce


【解决方案1】:

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


(编辑)

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

如果是您的情况,请记住在 POST 上使用 XSS 过滤,并在必须通过脚本 hack 保护的地方使用 GET(访问 CodeIgniter XSS manual page)。

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

    <input type="hidden" name="test" id="test" value="<p><span style="color:#f00;">test</span></p>" />

【讨论】:

  • 关闭 XSS 效果很好,所以我重写了 CI 的类以关闭特定数据字段的 XSS,效果很好
  • 伟大的工作马扎尔!您使用的解决方案可能比我建议的要好。我想我也会这样做!
猜你喜欢
  • 1970-01-01
  • 2015-12-20
  • 2018-12-21
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多