我的代码中的一些jQuery函数是插入字符串:
jQuery15206649508478338135_1314906667378
进入用户提供的反馈。这是从多种形式发生的,它存储在数据库中,这真的让我们的用户烦恼。这样的代码的一个示例:
$(".sendFeedback").live("click", function() {
var feedbackText = $(".feedbackText:visible").val();
var errorElement = $(".feedbackError:first");
if (isEmptyTrimmed(feedbackText)) {
errorOut(errorElement, language.pleaseEnterFeedbackText);
return false;
}
var sendFeedback = { email : userSettings.email, firstName : "",lastName : "",primaryRole : "", description : "<br />Feedback text: <pre>" + feedbackText + "</pre>",
sendNotification : false, isPartner : false , formType : 3};
callService("sendFeedback", sendFeedback);
currentMessage = language.thankYouForTheFeedback;
loadScreenByHash("mainScreen");
});
function callService(serviceName, data, callbackFunction) {
var json = $.toJSON(data);
json = "{ " + serviceName + ": " + json + " }";
$.post(serviceUrl, json,
function(response) {
if (callbackFunction) {
callbackFunction(response);
}
}, 'json').error(function() {
if (callbackFunction) {
callbackFunction();
}
});
}
callService函数指向Java服务器,所以我怀疑它是否插入到那里。 java服务器写入数据库,所以我很确定它会被插入到javascript代码中。
它也发生在其他地方,它们遵循相同的公式:用.val()读取用户输入,传递给callService(有时通过额外的JS函数)。输出数据的示例:
我创建了一个测验,但无法弄清楚如何为我的课程运行它。 没有按钮说跑 quizjQuery15206649508478338135_1314906667378?客户名称
我也看到它附加在一个字符串的末尾。如果有人以前见过这个,请告诉我。
答案 0 :(得分:0)
我找到了问题的原因。输入用户数据,发送到数据库,但数据库未设置为UTF-8。每次在数据库中搞乱字符编码时都会出现问题。当数据库返回垃圾时,它会触发要添加的字符串。
更改数据库编码解决了这个问题。