当我在我的textarea中输入“:))”并通过ajax发送时,它会向数据库输入一个值 “jQuery172039628539560362697_1345324072488”,我怎么能阻止这个?我应该先在javascript中以某种方式解析我的文本,以使其识别文本,而不是javascript编码的一部分吗?
这就是我的文字
var message = $("textarea.message_thread").val();
var dataString = 'id=' + id + '&message=' + message;
// make ajax call
发送
$.ajax(
{
type: "POST",
url: "/inbox/instsend",
data: dataString,
dataType: 'json',
success: function(results) {}
}
答案 0 :(得分:1)
见问题的评论;问题是在dataString
中提交的内容实际上是一个url编码的字符串,而不是JSON-izable或JSON文字变量。
因此:
dataString = {id: id, message: message};
这里会解决这个问题。 jQuery将获取该对象初始化变量并将其编码为JSON。
答案 1 :(得分:0)
当您使用JSONP进行跨域AJAX调用时,这将由jQuery自动完成。它应该将此字符串作为callback
参数的值发送。
答案 2 :(得分:0)
您需要清理输入并转义任何控制代码 - 例如:和)
答案 3 :(得分:0)
因为你在这里做POST。这可以工作
var dataString = '{'+'id:' + id + 'message:' + message +'}'