jQuery附加不需要的数据

时间:2011-09-02 02:26:54

标签: javascript jquery

我的代码中的一些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?客户名称

我也看到它附加在一个字符串的末尾。如果有人以前见过这个,请告诉我。

1 个答案:

答案 0 :(得分:0)

我找到了问题的原因。输入用户数据,发送到数据库,但数据库未设置为UTF-8。每次在数据库中搞乱字符编码时都会出现问题。当数据库返回垃圾时,它会触发要添加的字符串。

更改数据库编码解决了这个问题。