簡體   English   中英

通過AJAX將用戶輸入的文本發送到Google App Engine的最佳方法是什么?

[英]What's the best way to send user-inputted text via AJAX to Google App Engine?

我正在Google App Engine(python sdk)中進行開發,並且我想使用jQuery發送Ajax請求來存儲問題的答案。

將這些數據發送到服務器的最佳方法是什么? 目前我有:

function storeItem(question_id) {
        var answerInputControl = ".input_answer_"+question_id;
        var answer_text = $(answerInputControl).text();
        $.ajax({
            type: "POST",
            url: "store_answer.html",
            data: "question="+question_id,
            success: function(responseText){
                alert("Retrieved: " + responseText);
            }
        });
    }

這需要一個問題ID,並通過查詢字符串將其提供給服務器。 但是在服務器端,我無法訪問要存儲的答案控件的內容。 沒有Ajax,我可以使用以下命令執行此操作:

class StoreAnswers(webapp.RequestHandler):
def post(self):
    question_id = self.request.get("question_id")
    answer_text = self.request.get("input_answer" + question_id)

但是當通過Ajax進行此調用時,我的answer_text為空。

  • 我是否需要將此控件的內容作為Ajax請求的數據的一部分發送?
  • 是否將控件本身添加到查詢字符串? 它的內容? 內容長度可能只有幾百個字符,這有關系嗎? 這是最推薦的做法嗎?
  • 如果將其作為查詢字符串發送,那么逃脫內容以使惡意用戶不會損害系統的最佳方法是什么?

data在您的ajax調用必須包括所有要發送的數據-張貼幾百個字符是絕對沒有問題的,它是最肯定的推薦方法。

不要使用GET代替POST - (我懷疑是你的“發送作為查詢字符串”的意思),只會給你買各種各樣的麻煩,同時也違反語義的GET (應限於“只讀”查詢,沒有副作用)。

您的數據格式錯誤:

data: {
    question_id: question_id,
    input_answer: $(answerInputControl).text()
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM