【发布时间】:2016-06-05 09:38:11
【问题描述】:
我正在重构一个我自己用作学习工具的项目,它是一个 HTML5 画布游戏,其中我有一个用 javascript 对象和画布构建的六边形网格。一切都存储在 javascript 对象结构中。
我正在尝试更多地了解 Python。我设置了一个基本的 Python Flask 路由,能够将 AJAX 请求从 javascript 发送到 Flask 路由,能够提交到 Redis,能够从 Redis 检索......但我似乎无法弄清楚是什么我缺少将信息从 Python 传递回 javascript 对象的部分。
HTML:
<head>
<script type=text/javascript src="{{ url_for('static', filename='jquery-2.2.0.min.js') }}"></script>
</head>
<script type="text/javascript">
$(function() {
var data =
{
row: '3',
col: '3',
};
$('#sendBtn').click(function() {
$.ajax({
type: 'POST',
url: '/saveMap',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(data),
success: function(response) {
console.log(response.row)
},
error: function(error) {
console.log(error);
}
});
});
});
</script>
<body>
<button id="sendBtn" class="btn btn-lg btn-primary btn-block" type="button">Send</button>
</body>
</html>
Python: 从烧瓶进口烧瓶,render_template,json,请求 导入redis
app = Flask(__name__)
r = redis.Redis("localhost")
@app.route("/")
def main():
return render_template('index.html')
@app.route('/saveMap',methods=['POST'])
def saveMap():
if request.method == "POST":
r.set("test", request.json)
result = r.get("test")
return result
if __name__ == "__main__":
app.run(debug=True)
因此,当单击#sendBtn 时,请求会通过,然后返回,并在“网络”选项卡中显示为响应
{u'col': u'3', u'row': u'3'}
但是在 AJAX 调用的成功部分,当我尝试调用 response.row 时,它给了我一个“未定义”。
我觉得我很接近,我在这里错过了什么?
【问题讨论】:
标签: javascript python ajax flask redis