Javascript 使用ckeditor在ajax post中序列化表单时抛出ajax错误
我正在我们的项目中使用ckeditor。在ajax帖子中传递该值,如Javascript 使用ckeditor在ajax post中序列化表单时抛出ajax错误,javascript,jquery,ajax,ckeditor,Javascript,Jquery,Ajax,Ckeditor,我正在我们的项目中使用ckeditor。在ajax帖子中传递该值,如 //$form is -> $('form') jquery object $("#ajaxsubmitbutton").on('click', function () { CKupdate(); $.ajax({ type: ($form.attr('method').toLowerCase() == 'post' ? 'POS
//$form is -> $('form') jquery object
$("#ajaxsubmitbutton").on('click', function () {
CKupdate();
$.ajax({
type: ($form.attr('method').toLowerCase() == 'post' ? 'POST' : 'GET'),
url: ($form.attr('action') == 'undefined' ? window.location : $form.attr('action')),
data: $form.serialize(),
success: function (data) {
// Use local eval, since it will work in this context
callbackFunction(data);
},
error: function () {
var data = "ajaxerror";
callbackFunction(data);
}
});
});
Ckeditor更新代码:
function CKupdate(){
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
}
"Id=0&Title=dfg&ShortText=rer&CultureCode=en-US&StartDate=3%2F12%2F2014&EndDate=3%2F26%2F2014&Text=%3Cp%3Etest3%3C%2Fp%3E%0D%0A"
$form.serialize具有以下值:
function CKupdate(){
for ( instance in CKEDITOR.instances )
CKEDITOR.instances[instance].updateElement();
}
"Id=0&Title=dfg&ShortText=rer&CultureCode=en-US&StartDate=3%2F12%2F2014&EndDate=3%2F26%2F2014&Text=%3Cp%3Etest3%3C%2Fp%3E%0D%0A"
控制器代码:
public JsonResult Save(int id, string title, string shortText, string text, DateTime? startDate, DateTime? endDate, string cultureCode)
{
//process some operation
}
它抛出一些ajax错误,如“500-找不到内部服务器”。我不知道这个问题的真正原因是什么
可能是序列化表单时出现的问题。这方面的任何帮助。我怀疑标签是这里的问题- 假设在这里使用Asp.net MVC,您有两种选择- 用[AllowHtml]方法装饰您的模型属性(不确定在这里将属性转换为模型会有多痛苦) 将[ValidateInput(false)]标记放在控制器方法上 您可能还需要在配置中将以下标记添加到system.web
<httpRuntime requestValidationMode="2.0"/>
如果您的提交不是一篇文章,那么您可能也会遇到问题,在这种情况下,您需要将allowget添加到返回值中
我不确定这是否是你的问题,没有完整的错误,但这就是我要开始的地方。您可能希望检查fiddler或firebug中的响应,以查看是否可以获得有关该异常的更多信息
希望有帮助 您的表单操作看起来像什么?表单操作->仅保存。路径没有问题$表单也包含一些html标记内容。如“测试””,我也需要通过此html标记内容,可能是这导致了我假设中的问题。我不确定我没有任何模型。我只想在ajax帖子中以字符串形式传递html标记内容。如果可能的话?非常感谢。在控制器操作中添加ValidateInput(false)后,它现在可以工作了。但是不需要在web.config中添加代码?由于我没有在web.config中添加该代码,因此即使在这种情况下,我也会尝试使用validateInput标记,尽管我知道在某些MVC版本中使用该标记时遇到问题。如果这不起作用,你可能想建立一个快速的模型来获得表单发布的结果-你根本不需要更改html,只要表单发布变量匹配,它应该正确映射,这将允许你使用当前推荐的方法。太好了-很高兴听到这个消息!我不确定您使用的是哪个版本-我认为验证模式设置仅适用于一些较新的MVC版本。没问题:)奇怪-我认为这对于4.0是必要的,但我一定弄错了。有关标签用途的更多信息: