我正在開發Google App Engine(python sdk),我想用jQuery發送一個Ajax請求來存儲問題的答案。通過AJAX將用戶輸入的文本發送到Google App Engine的最佳方式是什麼?
將此數據發送到服務器的最佳方式是什麼?目前我有:
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請求的數據的一部分發送?
- 是否將控件本身添加到查詢字符串?它的內容?內容可能長達幾百個字符是否重要?這是最推薦的做法嗎?
- 如果將其作爲查詢字符串發送,那麼轉義內容的最佳方式是什麼?以便惡意用戶不會損害系統?
我提到的查詢字符串,因爲我想在Ajax調用「數據:‘這一行的問題=’+ question_id」是建立一個查詢字符串,但我想我這是錯誤的。在通過ajax調用發送內容之前,通過什麼方式來轉義內容? – Cuga 2010-05-25 03:43:42