Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当我在消息中放入:)时,消息传递系统jquery发送jQuery514109241_1210239812938_Javascript_Jquery - Fatal编程技术网

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

Javascript 当我在消息中放入:)时,消息传递系统jquery发送jQuery514109241_1210239812938,javascript,jquery,Javascript,Jquery,当我在文本区域中输入“:”)并通过ajax发送时,它会向数据库中输入一个值,如 “jQuery172039628539560362697_1345324072488”,我如何才能阻止这种情况?我应该首先用javascript解析文本,让它识别文本,而不是javascript编码的一部分吗 这就是我获取文本的方式 var message = $("textarea.message_thread").val(); var dataString = 'id=' + id + '&message

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

                        }

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

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

,因为您正在此处执行POST。这会管用的

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

见问题下的评论;问题在于,在
dataString
中提交的内容实际上是一个url编码的字符串,而不是JSON izable或JSON literal变量

因此:

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

将在此处解决此问题。jQuery将获取该对象初始化的变量,并将其编码为JSON。

一切都在beta.mysite.com中完成,没有跨域调用。我用关于如何获取文本的代码更新了我的问题。您如何发送AJAX请求?更新的问题,用代码。数据库SQL部分在哪里?这就是问题所在。您还发送了一个URL编码的字符串,而不是JSON。让jQuery对您的数据进行编码,给出
数据:myDataObj
。数据库部分很好,我检查了插入,问题发生在php中初始传递到变量时@JaredFarrish我在写一个url编码的字符串,好吧,所以我必须用myDataObj代替dataString,它将知道dataString=myDataObj?var dataString='{'+'id:'+id+'消息:'+message+'}'我在post中更新了答案,我们不发送带有符号的参数,但在我们发送的格式中,你也丢失了一个逗号。而且,真的,它不必是字符串:
{id:id,message:message}
问题不在于有输入错误,而是您试图手动编写json
var-dataString={id:id,message:message}
相当于@AD7six,不那么黑,也更健壮,这是一种愚蠢的方式(仍然缺少一个逗号);对象初始值设定项会更简单,而且,让我们面对现实,会更有趣。