【发布时间】:2015-08-18 09:27:00
【问题描述】:
我想用 jquery 对 django 视图进行 ajax 调用。此视图查询外部 API,然后返回结果。我正在尝试返回数据并在 ajax 调用的成功回调中对其进行操作,但我得到的是一个呈现的 html 网站,显示响应的内容。这是我的代码。
我的表格:
<form class="form-inline" method="get" action="/search/">
<div class="input-group">
<input type="text" class="form-control" id="search" name="search" placeholder="Search">
</div>
<button id="btn-search" class="btn btn-default" type="submit">SEARCH</button>
</form>
我的 ajax 调用:
$('#btn-search').click(function() {
var params = {
'query': $('#search').val()
}
$.ajax({
data: params,
url: JS_URLS['search'],
type: 'get',
success: function (data) {
alert("SUCCESS");
},
error: function (data) {
alert("ERROR");
}
});
})
我的看法:
def search(request):
if request.GET:
params = {
'name' : request.GET['search'],
}
encoded_params = urllib.urlencode(params)
response = execute_request(url)
return HttpResponse(json.dumps(response), content_type='application/json')
我得到了什么:
显然,响应没有返回到 ajax 函数,因为我没有在成功和错误回调中设置警报消息。
【问题讨论】:
-
如果
#search是a元素,则需要阻止默认操作。你在做这个吗? -
您是否尝试过以其他方式调用 url,例如从浏览器或 curl?