消息传递系统 jquery 发送jQuery514109241_1210239812938当我在消息中放入:))时

Messaging system jquery sends jQuery514109241_1210239812938 when I put :)) in the message

本文关键字:消息 发送 jquery 系统 jQuery514109241 1210239812938 消息传递      更新时间:2023-09-26

当我在我的文本区域中输入":))"并通过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) {}
                        }

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

因此:

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

jQuery将获取该对象初始化的变量并将其编码为JSON。

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

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

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

var dataString = '{'+'id:' + id + 'message:' + message +'}'