【发布时间】:2015-06-07 07:31:39
【问题描述】:
我正在尝试通过 ajax 发送帖子中 div 中的值。
具体来说,我正在尝试发送 div slick-active 中的内容,因此在此示例中为 console.log(data.results);将显示 4 和 6
这里是html:
<div class="slider single-item">
<div class="slick-slide"><h3>1</h3></div>
<div class="slick-slide"><h3>2</h3></div>
<div class="slick-slide"><h3>3</h3></div>
<div class="slick-slide slick-active"><h3>4</h3></div>
<div class="slick-slide"><h3>5</h3></div>
<div class="slider single-item">
<div class="slick-slide slick-active"><h3>6</h3></div>
<div class="slick-slide"><h3>7</h3></div>
<div class="slick-slide"><h3>8</h3></div>
<div class="slick-slide"><h3>9</h3></div>
<div class="slick-slide"><h3>10</h3></div>
这里是 ajax/jquery
$(document).ready(function(){
$('#submit').on('click', function(e){
e.preventDefault(); // preventing default click action
$.ajax({
url: '/testing',
type: 'post',
data: JSON.stringify({results: $('#div.slick-active')}),
success: function (data) {
console.log(data);
// ajax success callback
}, error: function (response) {
alert('ajax failed');
// ajax error callback
},
});
});
服务器端 Flask 路由
@app.route('/testing', methods=['GET', 'POST'])
def testing():
r = request.json
print r
return "data recived is %s" % r
它将console.log r 返回为None,而应该返回4,6
【问题讨论】:
-
可能是
console.log(data)?一般提示:在询问“不起作用”问题之前,请在浏览器的开发人员工具中设置断点并检查您自己的代码和数据。 -
/testing路由是否返回了一些东西?原因data是您发布到的脚本的结果。您可能想要显示脚本 (/testing),因为它可能存在问题。 -
$('#div.slick-active')将返回一个 jQuery 对象,而不是 div 中的文本。你应该改用$('#div.slick-active').text()之类的东西。 -
@Tomalak 好的,谢谢。是的 /testing 进入烧瓶路线。我会拿出来测试一下。让我试试#div
-
@Jite 我更新显示服务器端
标签: javascript jquery ajax flask