-1

当我将“:))”放入我的 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) {}

                        }
4

4 回答 4

1

请参阅问题下的评论;问题是提交的dataString内容实际上是一个 url 编码的字符串,而不是 JSON 可化或 JSON 文字变量。

因此:

dataString = {id: id, message: message};

将解决这个问题,在这里。jQuery 将采用该对象初始化变量并将其编码为 JSON。

于 2012-08-18T21:39:02.637 回答
0

当您使用 JSONP 进行跨域 AJAX 调用时,这是由 jQuery 自动完成的。它应该将此字符串作为callback参数的值发送。

于 2012-08-18T21:14:47.543 回答
0

因为你在这里做 POST。这会起作用

var dataString = '{'+'id:' + id + 'message:' + message +'}'
于 2012-08-18T21:19:44.017 回答
0

您需要清理输入并转义任何控制代码 - 例如:和)

于 2012-08-18T21:15:24.507 回答