2011-09-02 25 views
1

一些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?客戶名稱

我也看到它附加在字符串的末尾。讓我知道有沒有人看過這個。

+0

從jquery-json插件$ .toJson。 [jquery-json文檔](http://code.google.com/p/jquery-json/) – west1737

+0

對不起,我刪除了一個評論,我問了什麼'$ .toJSON'來自哪裏。 –

+0

你是否試過通過這段代碼進行調試? '.val()'調用之後和'$ .post'之前必須發生問題。 –

回答

0

我找到了問題的原因。用戶數據已輸入,發送到數據庫,但數據庫未設置爲UTF-8。每次在數據庫中出現字符編碼時都會出現問題。當數據庫返回垃圾時,它會觸發要添加的字符串。

更改數據庫編碼解決了這個問題。