通过AJAX将用户输入的文本发送到googleappengine的最佳方式是什么?

2024-09-28 01:31:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在googleappengine(pythonsdk)中开发,我想使用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,我可以使用以下命令执行此操作:

^{pr2}$

但是当通过Ajax进行这个调用时,my answer_text是空的。在

  • 我是否需要将此控件的内容作为Ajax请求的一部分发送?在
  • 是否将控件本身添加到查询字符串中?它的内容?内容可能只有几百个字符,这有关系吗?这是最值得推荐的做法吗?在
  • 如果将其作为查询字符串发送,那么什么是对内容进行转义的最佳方法,以便恶意用户不会损害系统?在

Tags: 字符串textanswer服务器id内容varajax
2条回答

数据格式不正确:

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

在您的ajax调用中的data必须包含您要发送的所有数据,发送几百个字符是绝对没有问题的,而且这绝对是推荐的方法。在

不要使用GET来代替POST(我怀疑这就是您所说的“作为查询字符串发送”的意思)只会给您带来各种麻烦,并且违反了GET的语义(它应该限于“只读”查询,没有副作用)。在

相关问题 更多 >

    热门问题