【发布时间】:2014-08-26 20:09:11
【问题描述】:
我有一个表单,人们可以在其中发布书评。他们给出了书名、作者姓名和评论文本。当用户单击按钮保存评论时,将调用一个 javascript 函数:
function gravarResenha(id) {
var livro = $("#resenhatit").val();
var autor = $("#resenhaaut").val();
var resen = $("#resenhatex").val();
if ((livro != "") && (autor != "") && (resen != "")) {
$.ajax({
type: "POST",
url: "resenha/gravar/id/" + id + "/livro/" + livro + "/autor/" + autor + "/texto/" + resen,
success: function(res) {
if( res == 1 ) {
carregaPagina( 'secliteratura' , 'col02' );
} else {
alert( "Problemas no cadastramento da resenha. Tente novamente." );
}
},
error: function(res) {
alert( "Problemas no cadastramento da resenha. Tente novamente." );
}
});
} else {
alert( "Impossível postar uma resenha vazia." );
}
}
变量resen接收id为#resenhatex的textarea的值。该值被截断。
起初我以为是因为我在 MySQL 表中使用了 TEXT 字段。然后我将其更改为 LONGBLOB 字段,考虑到评论可能有点长。
我还在我的 jQuery AJAX 调用中添加了这种类型:“POST”,因为我提醒了 GET 方法在发送的数据大小方面有一些限制。
即使做了所有这些更改,当我发送更大的评论时,我仍然会得到相同的截断值。
有什么建议吗?
【问题讨论】:
-
max-length在 textarea 或编辑器配置上?在发送前、接收时和插入后总是可以检查它的长度,看看它可能在哪里被切断 -
没有编辑器,只有一个普通的文本区域。你知道这种 html 对象是否有默认的最大长度吗?我没有为此文本区域设置最大长度。
-
您现在可能已经指定了 POST 方法,但您仍在将数据放入 URL,因此它仍然通过 GET 传输……使用 POST 正确并将数据指定到作为对象发送。
-
真的不知道这个,@CBroe。现在就去试试!
-
去做吧。 (但这很可能不是 GET 与 POST 的问题,而是您忽略了正确转义要放入 URL 上下文的数据。)
标签: javascript jquery mysql blob truncate